电工学习网

 找回密码
 立即注册
查看: 207|回复: 0
打印 上一主题 下一主题

[分享] S7-200和威纶通触摸屏MODBUS RTU协议通讯

[复制链接]
跳转到指定楼层
楼主
发表于 2019-4-25 10:43:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我们这里以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 连接。

本文转自“工业之家”


|电工学习网 ( )

GMT+8, 2019-5-14 11:44

Powered by © 2011-2019 shrqyymz.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表