[本地新闻] 西门子S7-200使用Modbus协议(最全解析)

[复制链接]
查看: 381|回复: 0

120

主题

120

帖子

464

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
464
跳转到指定楼层
楼主
发表于 2018-12-26 23:30:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在使用Modbus协议时,计算机与S7-200之间通讯直接使用PPI通讯电缆即可。但如果通讯距离较远,或者需要将多个S7-200连接到一个通讯总线上时,我们可以通过如下方法配制通讯链路。
选配一个计算机通讯端口

由于S7-200通讯端口物理层使用的是RS-485通讯规范,因此我们需要在计算机端增加一个RS-485通讯端口,才能与计算机通讯建立通讯。如果计算机闲置的串口,我们可以选配一个RS-232转RS-484转换器即可;如果没有闲置的串口,我们通过在计算机中增加一个RS-485通讯卡也可以;现在很多计算机都有USB口,我们也可以在计算机上外接一个USB转RS-485转换器。
连接通讯电缆

S7-200的通讯端口是一个9孔(famel)D型插头,针脚分布如下所示:

针脚信号
1地线 (RS-485 逻辑地)
224 V 地线 (RS-485 逻辑地)
3信号B (RxD/TxD+)
4RTS (TTL level)
5地线 (RS-485 逻辑地)
6(空)
724 V 电源
8信号A (RxD/TxD-)
9通讯选择

S7-200通讯端口(端口0)与RS-485板卡或RS-485/RS-232转换器之间接线,如下图所示:

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指令拖拽到主程序块中。调用过程如下图所示:

               
                    
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 关注微信 下载APP 返回列表