9
babjhdej巴彦淖尔西门子代理商西门子S7系列plc逻辑运算指令下所示。
字节逻辑运算指令 ANDB IN1,OUT 将字节IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VB,IB,QB,MB,SB,SMB,LB,AC,*VD,*AC,*LD
IN1和IN2还可以是常数 ORB IN1,OUT 将字节IN1和OUT按位作逻辑或运算,OUT输出结果 XORB IN1,OUT 将字节IN1和OUT按位作逻辑异或运算,OUT输出结果 INVB OUT 将字节OUT按位取反,OUT输出结果 字逻辑运算指令 ANDW IN1,OUT 将字IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VW,IW,QW,MW,SW,SMW,LW,T,C,AC,*VD,*AC,*LD
IN1和IN2还可以是AIW和常数 ORW IN1,OUT 将字IN1和OUT按位作逻辑或运算,OUT输出结果 XORW IN1,OUT 将字IN1和OUT按位作逻辑异或运算,OUT输出结果 INVW OUT 将字OUT按位取反,OUT输出结果双字逻辑运算指令 ANDD IN1,OUT 将双字IN1和OUT按位作逻辑与运算,OUT输出结果 IN1,IN2,OUT:VD,ID,QD,MD,SD,SMD,LD,AC,*VD,*AC,*LD
IN1和IN2还可以是HC和常数ORD IN1,OUT 将双字IN1和OUT按位作逻辑或运算,OUT输出结果XORD IN1,OUT 将双字IN1和OUT按位作逻辑异或运算,OUT输出结果INVD OUT 将双字OUT按位取反,OUT输出结果
S7-1200 设计紧凑、组态灵活,TIA在库函数中嵌套了Modbus-RTU 和Modbus-TCP功能库,在做数据采集的项目中是非常好用的。
做过一个换热站设备运行监测的项目,需采集管网一次侧和二次侧的供水压力、温度以及ABB变频器的工作状态。现场各类变送器已经接到了原有的智能仪表上,因此采用1200plc通过MODBUS-RTU 与现场智能仪表和变频器通信是比较经济的方案,并且可通过MODBUS-TCP与远程上位机通信。
智能仪表及变频器作为从站,只需在设定中选择Modbus-RTU通信协议并且为设备分配不重复的站地址即可。1200 PLC作为主站必须配备RS485通信模块,其通信的基本原理是:首先程序开始运行时,调用一次Modbus库中的功能块MB_COMM_LOAD来组态RS485模块上的端口;其次调用库中的功能块MB_MASTER作为Modbus主站与设备进行通信。
1200PLC作为主站通信是由DATA_ADDR(从站中的起始Modbus地址)和MODE(读、写、诊断模式)参数一起确定实际Modbus消息中使用的功能代码。DATA_PTR(数据指针)指向要写入或读取的数据的CPU DB地址,该DB必须为“非仅符号访问”DB类型。在TIA V12以上平台中,将该DB属性中的“优化的块访问”选项取消。
PLC主站发送带有站地址标识的数据来寻址不同的从站,同时不同的从站通过响应带有站地址标识的数据给主站,以完成整个通信过程。这种轮询通信,可以根据发送和接收完成的标志来完成,也可以以固定的时间间隔进行轮询,实际应用时需要考虑CPU的性能以及轮循Modbus子站时间。程序编好后先用MODBUS调试工具测试一下,正常后再开始接线。
在接线时遇到一个小插曲:PLC及变频器的485接线端子B为正,A为负,很多厂家仪表的485接线端子是A为正,B为负,一开始通信始终不正常,当查看仪表说明书时才发现。
项目中我使用的是Modbus-TCP通过PLC上PN接口与上位机进行通信,Modbus-TCP使用开放式用户通信连接作为Modbus通信路径。在S7-1200 PLC的库函数中嵌套了Modbus-TCP功能块库, 它包含了Server 和Client的库函数, 编程时可以直接调用该库函数可实现与上位机的Modbus-TCP通信。
在该系统应用中S7-1200 PLC作为 Modbus Tcp Server (服务器),调用 “MB_SERVER”指令处理Modbus-TCP客户机的连接请求、接收Modbus功能的请求并发送响应,设置连接ID、IP端口等参数,使用起来比较简单。
S7-1200 PLC作为网络的服务器端,上位机可以按需建立连接访问PLC的数据区,这样在上位机对多个换热站的PLC连接中不会占用太多的资源。前提是PLC必需要有固定的IP才行,如果是动态拨号连接上位机,PLC端就需要作为客户端,通过修改MODE管脚的值改变发送或接收状态,按照主机的请求来按需向主机发送数据或主动接收主机的改写数据就比较麻烦了。
这是我在MODBUS通信协议项目应用中的一点小体会,一些观点或许过于幼稚,望各位**多我指正,仅以此文起到抛砖引玉的作用。
定时器是根据预先设定的定时值,按一定的时间单位进行计时的PLC内部装置,在运行过程中当定时器的输入条件满足时,当前值从0开始按一定的单位增加。当定时器的当前值到达设定值时,定时器发生动作,从而满足各种定时逻辑控制的需要。下面详细介绍定时器的使用。
1、S7—200 PLC定时器种类
S7—200 PLC为用户提供了三种类型的定时器:接通延时定时器(TON)、有记忆接通延时定时器(TONR)和断开延时定时器(TOF)。对于每一种定时器,又根据定时器的分辨率的不同,分为:1 ms、10 ms和100 ms三个精度等级。
定时器定时时间T的计算:T=PT×S。式中:T为实际定时时间,PT为设定值,S为分辨率。例如:TON指令使用T35(为10 ms的定时器),设定值为100,则实际定时时间为:
T=100 X 10=1 000 ms
定时器的设定值PT:数据类型为INT型。操作数可为:VW、IW、QW、MW、SW、SMW、LW、AIW、T、C、AC、*VD、*AC、*LD和常数,其中常数较为常用。
定时器的编号用定时器的名称和它的常数编号(较大为255)来表示,即T×××。如:T40。定时器的编号包含两方面的变量信息:定时器位和定时器当前值。定时器位即定时器触点,与其他
继电器
的输出相似。当定时器的当前值达到设定值PT时,定时器的触点动作。定时器当前值即定时器当前所累计的时间值,它用16位符号整数来表示,较大计数值为32 767。