西门子6ES7231-7PD22-0XA8详细使用
由于PLC 编程软件的不同,西门子S7-200与S7-300/400系列PLC用于梯形图编程的指令有所区别,具体如表9-1.3所示。图中有部分指令为非通用,只能在S7-200中使用(或只能在S7-300/400中使用)。
(1)触点装载指令
在S7-200 PLC中,与其他公司的PLC -样,对于与梯形图的母线相连接的开始触点,需要采用触点装载指令LD作为开始。但是,在S7-300/400中,则是直接以逻辑运算指令代替触点装载指令(见图9-1.6)。
[例1]对于图9-1.6所示的梯形图,在S7-200中的指令表程序为:
在S7-300/400中的指令表程序为:
Network 1
A IO.I
A 10.2
AN 10.3
= MO.O
Network 2
A(
O IO.I
0 10.2
O I0.3
)
AN I0.4
MO.1
(2)括号的使用
与数学运算一样,在S7-300/400 PLC中,逻辑运算遵守“先与后或”的原则进行,因此,对于需要先进行“或”运算的场合,需要通过括号来调整运算的先后次序,括号的意义与数学运算相同。在PLC编程时,对于左括号“(”,应紧跟逻辑指令代码之后,如“A(”、“O(”等;右括号应单独作为一个指令行,参见例9-1中在S7-300/400中的指令表程序。(信息来源:www.dqjsw.com.cn)
(3)“异或”与“同或”指令
当需要对两个信号进行“异或”或者“同或”运算时,在S7-300/400 PLC中可以直接使用“异或”与“同或”指令。
【例2】对于图9-1.7所示的梯形图,在S7-200中由于没有“异或”、“同或”指令,编程时只能使用“堆栈”操作指令“OLD”实现,指令表程序如下:但在S7-300/400中则可以直接使用“异或”、“同或”指令实现,指令表程序如下:
Networkl
XI0.1
XI0.2
=
Network2
X I0.1
XN 10.2
= MO.1
(4)结果“置位”、“清除”、“保存”指令
在S7-300/400 PLC中,利用指令SET、CLR、SAVE可以直接对当前的逻辑运算结果进行置位、复位与保存操作。
力了可靠地检测、保存、记忆S7程序中的逻辑运算、数学运算指令的执行结果状态,在S7-300/400 PLC中,设有一个专用的16位状态寄存器。状态寄存器中有2个状态位与逻辑指令的结果有关。
①RLO位:RLO位称为“逻辑运算结果”状态位,用于存放逻辑运算、逻辑比较指令的执行结果:
②BR位:BR位称为“布尔运算结果”状态位。当处理的程序段中既有位逻辑运算,又有字逻辑运算时,BR用于存放字逻辑运算指令的执行状况,当“字逻辑”运算指令被正确执行时,该位为“1”,否则为“0”。
通过指令SET、CLR,可以无条件将PLC的逻辑指令执行结果状态寄存器的RLO位直接设置成“1”或“0”,而不论前面的执行情况任何。通过指令SAVE,则可以将RLO位的状态写入到BR中。
很多自动化工程师在实际应用中使用组态软件与PLC进行modbus通讯,组态软件作为主站PLC作为从站。组态软件来采集PLC数据使用这种方式是比较常见的。但是反向的利用modbus协议让PLC去读组态软件里的数据确有着特殊的意义,在某些工控场合也是很好解决方案。紫金桥软件在组态软件行业里首先推出了modbus server,既紫金桥modbus server可以作为modbus从机为其他软件和硬件设备提供数据,在这篇文章中对此功能我们详细地加以介绍。
二、S7-200 Modbus主站的实现1、S7-200 Modbus 通信协议介绍
Modbus 是一种单主站的主/从通信模式。Modbus 网络上只能有一个主站存在,主站在 Modbus 网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。在 S7-200 CPU 通信口上实现的是 RS485 半双工通信,使用的是 S7-200 的自由口能。S7-200支持 Modbus 通信协议: S7-200 CPU 上的通讯口 0 和 1 (Port 0 和 Port 1)通过指令库支持 Modbus RTU 主站模式。
2、S7-200 Modbus主站的配置
西门子在 Micro/WIN V4.0 SP5 中正式推出 Modbus RTU 主站协议库(西门子标准库指令)。要使用 Modbus RTU 主站指令库,须遵循下列步骤:
⑴安装西门子标准指令库
⑵按照要求编写用户程序调用 Modubs RTU 主站指令库 Modbus RTU 主站功能编程使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:
具体参数的解释如下:
EN使能:必须保证每一扫描周期都被使能(使用SM0.0)
Mode模式:常为1,使能 Modbus 协议功能;为0 时恢复为系统 PPI 协议
Baud波特率:设为9600,要与从站波特率对应
Parity校验:校验方式选择 0=无校验
Timeout超时:主站等待从站响应的时间,以毫秒为单位,典型的设置值为1000毫秒(1秒),允许设置的范围为 1-32767。注意:这个值必须设置足够大以保证从站有时间响应。
Done完成位:初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作
Error初始化错误代码(只有在 Done 位为1时有效):
0=无错误
1=校验选择非法
2=波特率选择非法
3=模式选择非法
⑶调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;
如图1所示,具体参数设置如下:
Slave从站地址:可选择的范围 1-247
RW读写操作:0=读, 1=写
注意:1. 开关量输出和保持寄存器支持读和写功能
2. 开关量输入和模拟量输入只支持读功能
Addr读写从站的数据地址:选择读写的数据类型 00001至0xxxx-开关量输出10001至1xxxx-开关量输入
30001至3xxxx-模拟量输入
40001至4xxxx-保持寄存器
Count通讯的数据个数(位或字的个数)
注意: Modbus主站可读/写的大数据量为120个字(是指每一个 MBUS_MSG 指令)
DataPtr数据指针:1. 如果是读指令,读回的数据放到这个数据区中
2. 如果是写指令,要写出的数据放到这个数据区中
Done读写功能完成位
图1西门子Modbus RTU 主站协议库
三、紫金桥软件Modbus从站的实现
1、紫金桥modbus server的设置
Modbus 服务器可以把紫金桥数据库中的点映射为Modbus 设备的HR 寄存器,当前版本为3.0,支持串口和TCP/IP访问方式,支持HR区的读和写方式。也就是说支持03、06、16 号命令。
具体操作是先在紫金桥软件的安装目录中找到 ModbusSerSet.exe 并运行。其中左侧为变量配置显示区,它分为三列,分别是序号、数据库位号和Modbus 地址。后两列的意义是把某一个数据库位号和一个Modbus 地址建立映射关系。然后再调出系统设置对话框配置从机地址、串口等参数或以太网端口号、数据格式等。
2、通讯过程
配置完成后,先运行紫金桥软件然后在紫金桥软件的安装目录中找到 ModbusServer.exe 并运行。
从上面的通讯过程看到,S7-200与紫金桥modbus server通讯的响应速度为毫秒级的。