在使用西门子 S7-200 时, 在不增加其它通讯接口模块时, 威纶通触摸屏可以通讯 PPI 协议与 S7-200 直 接通讯。但这种通讯方式由于受通讯协议本身限制, 在通讯数据较多时, 通讯速度相对较慢, 使用 Modbus 协议则通讯速度可以提高约一倍。 下面就介绍一下怎么使用 Modbus 协议建立 S7-200 与威纶通触摸屏之 间的通讯:
硬件连接
在使用 Modbus 协议时,计算机与 S7-200 之间通讯直接使用 PPI 通讯电缆即可。
选配一触摸屏通讯端口
我们这里以 MT6070IH2 和 s7-200 进行通讯
S7-200 的通讯端口是一个 9 孔(famel) D 型插头,针脚分布如下所示:
S7-200 通讯端口(端口 0)与威纶通触摸屏的通讯连接,如下图所示:
S7-200 编程及设置
在缺省情况下 S7-200 的通讯端口是不支持 Modbus 协议的,要想实现 Modbus 通讯必需在 PLC 的主程 序模块中调用 Modbus 通讯子程序。 Modbus 通讯子程序可以从“STEP 7-Micro/WIN Add-On: Instruction Library (STEP 7-Micro/WIN 附件:指令库)”中获得。在安装了“STEP 7-Micro/WIN 附件:指令库”后,在 导航树“指令/库”下面我们可以找到“Modbus Protocol”。在其下面包含了 MBUS_INIT 和MBUS_SLAVE
两个子程序, MBUS_INIT 用于对 Modbus 通讯进行初始化, MBUS_SLAVE 用于在指定端口上提供 Modbus 从站通讯服务。下在介绍如何在主程序中调相关子程序及环境参数设置:
调用 Modbus 通讯初始化命令
首先为 MBUS_INIT 命令建立一个触发条件(只触发一次),如: SM0.1;从导航树“指令/库/ Modbus Protocol”下面, 将 MBUS_INIT 指令拖拽到主程序块中。再就是正确设置 MBUS_INIT 各项调用参数和执 行结果输出地址,我们可以建立一下如下图所示初始化调用过程:
Mode:协议类型, 1-Modbus 协议; 0-PPI 协议。
Addr: PLC 地址, 1~247 ,。
Baud: 通讯波特率, 1200 、2400 、4800 、9600 、19200 、38400 、57600 或 11520。
Parity: 校验方式, 0-无校验; 1-奇数校验; 2-偶数校验。
Delay:信息结束超时时间, 0~32767,有线连接设置为 0 即可。
MaxIQ:0~128,映射在离散输入寄存器或离散输出寄存器中的 I 或 Q 数。建议为: 128。
MaxAI:0~32;映射在模拟输入寄存器中 AIW 数;CPU 221 为 0,CPU 222 为 16,CPU 224、226 和 226XM 为 32。
MaxHold:V 内存映射在保持寄存器中的寄存器数。
HoldStart:V 内存的映射时的起始地址。
Done:初始化指完成时,输出为开状态;开关量(Bit)。
Error:初始化错误代码,请参阅 Modbus 从机协议执行错误代码;输出为字节。 调用 Modbus 从机通讯命令 初始化完成后, 就可以调用 Modbus 从机通讯命令(MBUS_SLAVE)了。通常 Modbus 从机通讯命令在 主程序块的每个执行周期都要初执行(始终保持通讯状态) ,因为可以用一个常开量作为命令的触发条件,
如: SM0.0。从导航树“指令/库/ Modbus Protocol”下面,将 MBUS_SLAVE 指令拖拽到主程序块中。调 用过程如下图所示:
Done: 当 MBUS_SLAVE 指令响应对 Modbus 请求时, “Done”为开状态。 没通讯请求时”Done”为关状态。
Error:指令执行结果。只有”Done”为开状态时,此状态有效。请参阅 Modbus 从机协议执行错误代码; 输 出为字节。
触摸屏 EB8000 软件的系统设置
系统参数设置中选择 MODBUS RTU
通讯参数的设置
设置的一个位状态开关
MODBUS RTU 和 s7-200 的地址对应关系
注: STEP 7-Micro/WIN 附件:指令库哪里有下载:sp5 以上版本自带指令库。不过如果是第一次安装 STEP 7-Micro/WIN,指令库并不会出现。
可以去下载 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library 。安装这个小软件,在 STEP 7-Micro/WIN 的指令树就有了指令库