S7 300 400流量累积 柴明军
- 格式:pdf
- 大小:601.46 KB
- 文档页数:4
国开(电大)专科《可编程控制器应用》网上形考机考试题三份及答案形考任务一试题及答案一、单项选择1.可编程序控制器采用微处理器作为XX处理单元,可以对逻辑量进行控制,也可以对()进行控制。
[答案]模拟量2.PLC具有逻辑运算功能,能够描述继电器触点的串联和()等各种连接。
[答案]并联3.PLC具有A/D转换和()功能,完成对模拟量的控制与调节。
[答案]D/A转换4.按()形式分类,PLC可分为整体式和模块式两种。
[答案]结构5.()模块是可编程序控制器系统的运算控制核心。
[答案]CPU6.()是安装可编程控制器各类模板的机架,可根据实际需要选择。
[答案]导轨7.()模板用于对PLC内部电路供电。
[答案]电源8.()是用来将输入端不同电压或电流信号转换成微处理器所能接收的低电平信号。
[答案]输入电压转换9.输出电平转换是用来将()控制的低电平信号转换为控制设备所需的电压或电流信号。
[答案]微处理器10.()是在微处理器与I/O回路之间采用的防干扰措施。
[答案]电气隔离二、判断题1.PLC的输入和输出量有开关量和模拟量两种。
开关量I/O用最大I/O点数表示,模拟量I/O点数用最大I/O通道数表示。
[答案]对2.PLC具有模数转换和数模转换功能,完成对逻辑量的控制与调节。
[答案]错3.PLC配置有较强的监控功能,能记忆某些异常情况,或当发生异常情况时自动中止运行。
[答案]对4.传统继电器接触器控制系统的控制功能必须通过修改控制器件和接线来实现。
[答案]对5.可编程控制系统的控制功能必须通过修改控制器件和接线来实现。
[答案]错6.输入输出模板必须与CPU模板放置在一起。
[答案]错7.集散控制系统由单回路仪表控制系统发展起来,主要侧重于回路调节功能。
[答案]错8.PLC的扫描周期仅取决于程序的长度。
[答案]错9.PLC的扫描周期仅取决于CPU模板的运算速度。
[答案]错三、多项选择1.以下传统继电器接触器控制系统和可编程控制系统的特点正确的是()。
S7300/400流量累积实例用FB做的带数据块的流量累积功能块。
采样累积在毫秒单位内ms_v,满一秒转入是s_v,同时将ms、ms_v清零,满一分钟累积量转入m_v,t同时将s、s_v清零,满一一小时累积量转入h_v,同时将min、m_v清零,可以累积入天…….。
每一时刻的累积量是ms_v+s_v+m_v+h_v。
Rest为零累积量清零。
在OB35中调用即可,如OB35中断周期为100ms,流量输入单位方/H,Unilt_c就是36000,Hz就为10,unilt_v对应流量记满量程值。
In pv word 瞬时流量In Unit_c Real 瞬时流量单位转换为采样时间流量单位In Rest int 为零时,累加器清零In Hz int 每秒采样次数In unilt_v Real 流量计最大流量单位Out ov Real 流量累积输出In_out ms int 毫秒记数In_out s int 秒记数In_out min int 分钟记数In_out h int 小时记数In_out ms_v dint 毫秒流量累积In_out s_v dint 秒流量累积In_out m_v dint 分钟流量累积In_out h_v dint 小时流量累积In_out in_v dint 将输入瞬时流量变为长整型流量累积功能块毫秒流量累积L #PVT #Unit_cL #Unit_cL #ms_v+DT #ms_vL #msL 1+IT #msL #Hz<IJC ol秒流量累积L #ms_v L #s_v +D T #s_v L #sL 1+I T #sL 0 T #ms T #ms_v L #s L 60<I JC ol分钟流量累积L #m_v L #s_v +D T #m_v L #min L 1+I T #min L 0 T #s T #s_v L #min L 60<I JC ol小时流量L #h_v L #m_v+DT #h_v L #hL 1+IT #hL 0T #min T #m_v清零ol: L #Rest L 0<>IJC endL 0L 0T #ms T #sT #minT #hT #ms_v T #s_v T #m_v T #h_v累积量end: L #ms_v L #s_v+DL #m_v+DL #h_v+DDTRL #Unit_c /RL #unilt_v*RL 2.764800e+004/RT #ov。
基于西门子PLC300流量累计的程序【在工业中往往会遇到业主要求做流量累积程序,比如要求检测到每月天然气用量,石油采集量,生产材料的多少,针对这些情况,PLC300往往做得多不是很精准,下面我介绍一个精度相对比较高的程序】由于有些地方采用T型图很难实现STL方便复制,本例采用STL 来编写更加方便本例采用OB35中断程序来实现,OB35中断时间为100ms,这个CALL "FLOWCOUNT"Reset :=M11.0instantF :=MD120Cycle :=1.000000e+002LimitF :=0.000000e+000INTF :=MD124DECF :=MD128Error :=MD132BEFORE :=MD136FC200 【FLOWCOUNT】功能块针对流量累积计算的算法原理是:积分量:就是当前中断程序执行的周期时间内的流量总和当前积分量= 积分量+ 以前的计算误差当前累积量= 当前积分量+ 原累积量>=DO #ResetJCN A7d0L L#0T #INTFL 0.000000e+000T #DECFT #Error // 如果累积量大于清零值或者清零键复位,则所以的清零重新累积A7d0: L #instantFL #BEFORE+RL 2.000000e+000/RT #Average //当前周期与上周期采样的值平均L #AverageL #LimitF>=RJCN A7d1L #LimitFT #FlowmeterValueSmallAltL #AverageL #Cycle*RL 3.600000e+006/RL #Error+RT #IntegralL #IntegralL #FlowmeterValueSmallAlt+RT #DECFL #FlowmeterValueSmallAltL #DECF-RL #Integral+RT #ErrorA7d1: L #DECFL 1.000000e+000>=RJCN A7d2L #DECFRNDL #INTF+DT #INTFL #DECFRNDDTR //将ACCU 1与ACCU 2互换L #DECFTAK-RT #DECFA7d2: L #instantFT #BEFORECLR //计算的误差A L 12.1SA VEBE一些指令说明:1.TAK 将ACCU 1与ACCU 2互换目录ACCU 1ACCU 2执行TAK指令之前<MW12><MW10>执行TAK指令之后<MW10><MW12>2.DTR 将长整型(32位)转换为浮点数(32位IEEE 754)例子:STL解释L MD10//将32位整数载入ACCU 1。
在DOS组态中正确实现流量累计——基于浙大中控JX-300XP系统实现流量累积摘要:通过介绍在实际生产过程中发现流量累积不准的问题,剖析在JX-300XP系统流量累积组态过程中会出现的问题,提供解决流量累积的正确方法,并可作为其他DCS系统中相类似问题的指导思想。
1 综述在许多石油化工和生产领域,对许多原料、中间产品、成品都要求进行流量累积,从而实现对产品质量的控制、经济责任制的考核以及为正确指导生产提供依据,所以,流量累积在装置的仪表系统中有非常重要的作用。
2 生产中问题的发现和原因分析(1)问题的发现图1我厂润滑脂采用的DCS是浙大中控技术有限公司的WebField JX一300XP DCS系统。
在投产初期发现,反应釜(如图1)产品质量不合格,通过对配方的计算,排除了工艺指标错误的可能性。
再通过对设计和温度控制系统的检查,也符合生产要求。
问题最后集中在加料系统上,在对加料质量流量计测试后,流量瞬时量也符合精度要求,然后输入标准信号对DCS 进行流量累积实验中发现,流量累积相对标准信号有较大误差,至此,问题明确了,由于对流量累积错误,造成累计量误差,从而影响了产品质量。
打开JX一300XP系统组态软件SCKey后,进入FT_4Ol的I/O组态界面,如下图:图2这里,FT一401量程设置为0—36T/H,再点击系统组态软件SCKey里的“算法”进入,在这里找到FT一401的原流量累积程序,如下图:图3注:SFLOAT—TO—FL0AT;FLOAT—TO—SFLOAT为数据类型转换模块。
MUL—FLOAT为浮点类型乘法模块DIV—FLOAT 为浮点类型除法模块。
TOTAL-ACCUM为流量累计模块。
为了说明清楚问题,在这里先了解一下累计模块的功能及相关的数据类型的说明,JX-300X累计模块如下图:功能说明:Y=accum+X该模块的功能是进行累计,Y与accum引脚用同一变量,此变量以X每秒的速度递增。
西门子WinCC与S7-300/400 PLC数据通讯
杜波
【期刊名称】《《可编程控制器与工厂自动化(PLC FA)》》
【年(卷),期】2009(000)005
【摘要】本文对西门子WinCC站和S7300/400PLC之间进行数据通讯的方法进
行了阐述介绍了实现通讯连接所需的硬件及相应软件的配置和通讯连接故障的诊断。
【总页数】2页(P63-64)
【作者】杜波
【作者单位】济钢集团有限公司
【正文语种】中文
【中图分类】TP393
【相关文献】
1.S7-PLCSIM在西门子S7-300/400 PLC程序调试中的应用 [J], 张卫国
2.基于西门子S7-300 PLC和WinCC的立体车库控制系统设计 [J], 栾旭;徐伟
3.基于西门子WinCC与S7-300 PLC的汽车焊装线监控系统设计 [J], 董晓通;马
娜
4.西门子S7-300 PLC与WINCC操作站通讯故障处理 [J], 张杰;李波
5.S7-PLCSIM在西门子S7-300/400PLC程序调试中的应用 [J], 王斌
因版权原因,仅展示原文概要,查看原文内容请购买。
S7-300与S7-400之间的通信一.S7通信简介S7通讯是S7系列PLC基于MPI、PROFIBUS、ETHERNET网络的一种优化的通讯协议,主要用于S7300/400PLC之间的通讯。
SIMATIC S7-PN CPU包含了一个集成的PROFINET接口,该接口除了具有PROFINET I/O功能,还可以进行基于以太网的S7通信。
SIMATIC S7-PN CPU支持无确认数据交换、确认数据交换和单边访问功能。
功能块的使用如表1所示。
表1:块 S7-400 块S7-300 描述简要描述SFB8 FB8 用于发送无确认的快速数据交换,发送数据后无对方接收确认。
SFB9 FB9 用于接收SFB12 FB12 用于发送确认数据交换,发送数据后有对方接收确认。
SFB13 FB13 用于接收SFB14 FB14 读数据单边编程读访问。
SFB15 FB15 写数据单边编程写访问。
功能块的调用如图1、图2所示。
图1 S7-300功能块的调用图2 S7-400功能块的调用二.S7通信(S7 Communication)网络组态及参数设置1.新建项目及硬件组态在STEP 7中建立一个新的项目,点击右键,弹出的菜单中选择“Insert New Object”“SIMATIC 300 Station”,插入S7-300站,同理插入一个S7-400站,如图3所示。
在硬件组态中,分别插入CPU 315-2PN/DP和CPU 414-2,如图4所示。
图3 新建项目图4 硬件组态2.网络组态设置CPU 315-2PN/DP的属性,新建以太网并设置IP地址。
同样的方法,建立连接另一个S7-400的站,CP模板为CP 443-1,设置CP模板的IP 地址,连接到同一个网路“Ethernet(1)上”,如图5所示。
图5 设定IP地址在NetPro中组态连接。
选中S7-400站CPU,通过菜单“Insert>New Connection”插入一个新的连接。
S7-300PLC IP地址修改
带有PN接口的CPU或者有CP343-1或CP443-1以太网模块PLC300出厂时以太网口的默认IP是0.0.0.0,可以使用下面方式给以太网口分配或更改IP地址,分配IP的步骤如下:1、在SIMATIC管理器的SET PG/PC Interface中(安装STEP7才有)选择TCP/IP,或者在STEP7软件Options选项中对SET PG/PC Interface的设置,选择TCP/IP;如下图:
2、在STEP7SIMATIC MANAGER界面中,在线运行(online):
“PLC-Edit Ethernet node”
3、在“Edit Ethernet node”子菜单对话框界面中,点击Browse按钮,可以浏览到PLC或CP模块的MAC地址,点击OK确认后,该MAC自动填入。
然后在接下来的编辑框里面填入要分配的IP地址和子网掩码,再点击“Assign IP Configuration"(分配IP组态),IP地址成功分配。
4、将控制站本地连接的IP设置成与PLC的IP在同一个网段下,在线监控成功表示IP地址修改成功。
s7的200 300 冗余400与第三方dcs的
modbus通讯
有个项目,现有一个s7-200(cpu为224,只有一个通讯接口且已被占用),一个s7-200(cpu为226,两个通讯端口,port0空闲,port1占用),另外一个s7-300的cpu为315-2pn/dp (两个以太网口未用),还有一套s7-400h系统(cpu为414-7h)。
现在想与第三方dcs进行modbus通讯,是否需要增加什么硬件和通讯线?另外如何写发送数据的程序?
问题补充:
能提供一下,关于这几个plc和dcs通讯的例子?
最佳答案
1、s7-200(cpu为224,只有一个通讯接口且已被占用),增加一个em277模块,将目前与cpu通讯的设备转到em277上,然后用cpu的通讯口进行modbus通讯。
如果不改变现有通讯方式,只能加cp243将数据先传给s7-300,然后再进行modbus通讯。
2、s7-200(cpu为226,两个通讯端口,port0空闲,port1占用),可以直接用空闲的通讯口进行modbus通讯。
3、s7-300的cpu为315-2pn/dp(两个以太网口未用),增加cp341(带modbus硬件狗),进行modbus通讯。
4、s7-400h系统(cpu为414-7h),在et200m上增加cp341(带modbus硬件狗),进行modbus通讯。
浅谈西门子PLC编程中关于流量累计结果引言:在山东新华制药股份有限公司(以下简称新华制药)各车间的能源计量中,包含了对各种流量的累计,制药生产过程中用蒸汽、氮气、压风、盐水、自来水、冷却水流量等都需要成本核算进行流量累计。
新华制药能源系统是一个能源管理和生产成本考核数据平台。
新华制药能源管理系统大量采用西门子S7-300PLC系统进行数据采集,通过组态软件进行流量累计的应用,在TMP、CPC 车间使用Wincc对各种流量计量时,通过在PLC系统中对瞬时流量进行豪秒级的累加来实现。
但是在实际应用中发现,对于西门子S7-300PLC系统,会出现累计结果到一定的数值时不继续累加的情况,在对累计程序进行多种调试和修改后,结果并没有改善。
通过长期对流量累计情况观察总结后发现,如果在正常情况下被累计量趋于一个稳定值,在这个稳定值累计结果达到一定的值后,若被累计量远小于正常被累计量时,则累计结果就不再繼续累加,只有当被累计量大于正常被累计量时,累计结果才将继续累加。
为查明问题出现的原因,搭建一个实验系统平台。
一、试验系统设计1、试验系统硬件组成试验系统使用西门子工业自动化PLC的S7-300系统。
试验系统硬件型号:底板为6ES7 390-1AJ30-0AA0;电源为6ES7 307-1EA00-0AA0;中央处理器CPU为6ES7 315-2AH14-0AB0 V5.3;存储卡6ES7 953-8LG11-0AA0;模拟量输入模块为6ES7331-7KF02-OAB0。
2、试验系统软件组成计算机操作系统:WindowsXP Professional sp2;PLC软件:STEP7 V5.5SP5,监控软件:Simatic WinCC V6.2SP2。
二、验证程序设计1、验证程序简单编程使用西门子PLC系统自带模拟量处理功能块FC105采集外部模拟量输人,并做相应量程转换。
在现场应用中,通常在西门子S7-300PLC中使用系统定时中断组织块OB35来做流量累计。
流量累计例程使用说明
例程功能:完成对实时流量的累计功能
程序结构:在循环中断组织块OB35中调用功能块FB1,FB1的背景数据块为DB1
例程说明:
1.在例程中配置了一个S7-300站,并添加了一块SM331模板,假定流量计的4-20mA输
出信号接至该模板0通道,地址为PIW256。
2.在硬件配置中CPU的属性界面下设置循环中断组织块OB35的周期为1000ms,即1秒
钟。
3.FB1为封装的流量累计子程序,在OB35中调用FB1,其背景数据块为DB1。
FB1的输入/
输出管脚需逐个定义,具体说明如下:
FB1输入变量:
Flow_in:INT;//流量信号的模拟量输入地址,在例程中为PIW256
Hi_limit:REAL;//流量信号的工程量上限,在例程中为3600.0m3/h
Low_limit:REAL;//流量信号的工程量下限,在例程中为0.0m3/h Division:DINT;//实时流量时间单位的除数,如欲每秒计算一次累计流量,则该值为3600,因为实时流量时间单位为h,即小时,一小时为3600秒。
注意:OB35的周期必须与计算累计流量的周期相同。
Clear:BOOL;//累计流量清零
FB1输出变量:
Flow_rt:REAL;//转换为工程单位的实时流量
Flow_Accu:REAL;//当前累计流量值
4.将硬件配置及程序下载至CPU后,CPU将每秒计算一次累计流量,并将当前实时流量和累计流量值分别输出至MD2和MD6供读取。
如想将当前累计流量清零,只需将Clear管脚置“1”,该管脚为高电平有效。
使用方法:
将例程中FB1,DB1拷贝至您的项目中某S7-300/-400站下的Blocks中,在OB35中调用,按照上述说明定义FB1的输入/输出管脚即可。
以前我用plc做过流量计算。
首先的看你用什么计流量,如果是脉冲信号,因为PLC本身有运行周期,如果控制要求较高的场合,通过脉冲来计算出瞬时流量,计算出来实际上是不准的,而且控制上滞后比较严重。
TI430单片机之类具有硬件脉冲捕捉功能的单片机,在通过脉冲计算流量上,有得天独厚的优势。
这个可以参考一些基本的测速概念。
脉冲用来计算累积量很准。
如果流量计本身反馈的是4~20ma的速度模拟信号,这个就直接采集,然后在OB35里边用积分模块进行流量累计。
这个速度信号比较及时准确,但中断模块调用积分,也会有误差,不如脉冲计量准。
设置OB35中断时间为1秒,然后按照常用方法用瞬时流量除3600,然后得到每秒的累积量,这样最后做了个流量累积值,现在的问题是,瞬时流量是从仪表流量计的输出4-20MA到PLC的模拟量,PLC得到的累积流量值一天下来总是和仪表上的那个累积流量会差到20000左右,到底怎么解决这个问题?
这种方法就是由误差,可将误差做的最小。
即
将OB35中断时间缩短(例如为100毫秒或更小),求出每100毫秒的累积量.试一试。
做累计程序的话,可以把瞬时流量/3600,然后在OB32里面做个循环相加就可以了(OB32为默认的1秒中断)或者瞬时流量/36000,然后在OB35里面做个循环相加(OB35为默认的100毫秒中断)。
在ob35中做,做一个小信号切除,太小的就不要了!
a start//开始累计流量
fp flg1=flg2
a flg2
jcn m2
l0.0
t sum
m2:nop0
a start
jcn m1
l pv//测量信号
l pv_low_sp//小信号值
>=r
jcn m1
l pv//以小时计
l7200.0//ob35的周期是500ms
/r l sum//累计信号
+r
t sum
m1:nop0
上面的程序启动瞬间累计数据清零,然后开始累计,start=0停止累计。
如果你要求的精度高的话,需要减小ob35的周期,同时7200.0也需要相应的变化。
如果你的周期是100ms了,那么7200.0需要变成36000.0。