原标题:S7-200PLC和威纶通触摸屏MODBUS RTU协议通讯实例
我们这里以MT6070IH2和s7-200进行通讯,S7-200的通讯端口是一个9孔(famel)D型插头。
针脚分布如下所示:
S7-200通讯端口(端口0)与威纶通触摸屏的通讯连接,如下图所示:
在缺省情况下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通讯初始化命令
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软件的系统设置
我们可知西门子PLC与触摸屏通讯原则:
采用无线RS485 通信产品实现触摸屏、人机界面及 PLC 之间的无线通信,需要遵循以下原则,适合于无线通信的方式有三种:
(1) 采用自由串口协议,需要用户熟悉串口通信,会编程。
(2) 采用PPI 协议,不需要编程,只需要简单组态。但是对无线数据终端有特殊要求,普通产品无法满足PPI 协议要求,推荐采用DTD433M专用PPI 无线数据终端。
(3) 采用Modbus协议,开放协议,普遍使用,但需要编程或组态。
由于无线产品的实时速度不能满足MPI 协议和Profibus 协议,所以不合适无线通信。如果一定要这样做的话,建议:
(1) S7-300选择CPU 313C 2PTP ,CPU 314C 2PTP(点对点);
(2) 用S7-200 中转一下,S7-200 与S7-300 之间采用 MPI 协议或者Profibus 协议,S7-200与触摸屏之间PPI 连接。返回搜狐,查看更多
责任编辑: