网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
西门子PLC通信中的Modbus协议编程方法
作者: 来源:中国机电工程网    发布于:2019-06-06 19:19:23    文字:【】【】【

在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC之间需要进行远程相互控制,通常是采用RS485总线,通过MODBUS协议完成此功能。 

如果现场布线不方便的话,也可以采用无线方式进行通信。这里以达泰DTD433无线模组和西门子S7_200为例进行说明。

一、两台S7_200 西门子PLC之间的远程控制

 

实现的功能:

l         PLC18个开关量输入,I0.0~I0.7PLC2的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A1开关按下时,PLC1的开关量输入I0.0闭合,PLC2的输出继电器触点Q0.0导通,L2点亮。

l         PLC28个开关量输入,I0.0~I0.7PLC1的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A2开关按下时,PLC2的开关量输入I0.0闭合,PLC1的输出继电器触点Q0.0导通,L1点亮。

l         PLC1PLC2之间的通信是通过S7_200 CPU22XPPort0通信口的RS485总线连接的,其中采用了Modbus协议。

二、西门子PLC通信中的Modbus协议编程方法

假设把PLC1作为主站,PLC2作为从站,分别编写主站和从站程序,主要掌握以下要点:

Modbus 主站读写程序

l              Modbus RTU主站功能是通过指令库中预先编好的程序功能块实现的,该库只针对Port 0口有效;

l              在程序中插入MBUS_CTRL指令,并在每次扫描时执行MBUS_CTRL。您可以使用MBUS_CTRL指令初始化或更改Modbus通讯参数。

  

 

l              Modbus RTU主站使用了一些用户中断,在用户程序中不能禁止中断;

l              读取从站数据在程序中插入MBUS_MSG指令,注意从站地址设置用一致;

l              该例程访问的为一个从站,若访问不同的从站,可通过改变从站地址来实现。

 

 

 

Modbus 从站读写程序

l         在第一个循环周期内插入MBUS_INIT指令初始化Modbus从站协议:

Mode:       模式选择,启动/停止MODBUS1=启动;0=停止

Address:     从站地址,MODBUS从站地址,取值1~247

Baud:       波特率,可选1200240048009600192003840057600115200 

Parity:       奇偶校验,0=无校验;1=奇校验;2=偶校验 

Delay:       延时,附加字符间延时,缺省值为

Done:        初始化完成标志,成功初始化后置

Error:        初始化错误代码

 

l         在本例子中,设置从站地址为8Port0 通讯波特率为9600bps,无校验;

l         本例子中Modbus RTU 从站指令使用的库存储为VB2000---VB2779,这段寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT 和 MBUS_SLAVE 指令在内。

 

 

l         MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。在每次扫描且EN输入开启时执行该指令。

浏览 (35) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人: 来源:中国机电工程网
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们