西门子电机1FL6044-2AF21-1AB1
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 联系电话
- 158****1992
- 全国服务热线
- 158****1992
- 经理
- 聂聪
- 所在地
- 上海市松江区广富林路4855弄88号3楼
- 更新时间
- 2023-10-26 04:00
在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的plc之间需要进行远程相互控制,通常是采用rs485总线,通过modbus协议完成此功能。
如果现场布线不方便的话,也可以采用无线方式进行通信。这里以达泰dtd433无线模组和西门子s7_200为例进行说明。
一、两台s7_200 西门子plc之间的远程控制
实现的功能:
plc1的8个开关量输入,i0.0~i0.7与plc2的开关量输出q0.0~q0.7一一对应,也就是说上图中的a1开关按下时,plc1的开关量输入i0.0闭合,plc2的输出继电器触点q0.0导通,l2点亮。
plc2的8个开关量输入,i0.0~i0.7与plc1的开关量输出q0.0~q0.7一一对应,也就是说上图中的a2开关按下时,plc2的开关量输入i0.0闭合,plc1的输出继电器触点q0.0导通,l1点亮。
plc1与plc2之间的通信是通过s7_200cpu22xp的port0通信口的rs485总线连接的,其中采用了modbus协议。
西门子plc通信中的modbus协议编程方法
假设把plc1作为主站,plc2作为从站,分别编写主站和从站程序,主要掌握以下要点:
modbus 主站读写程序
modbus rtu主站功能是通过指令库中预先编好的程序功能块实现的,该库只针对port 0口有效;
在程序中插入mbus_ctrl指令,并在每次扫描时执行mbus_ctrl。您可以使用mbus_ctrl指令初始化或更改modbus通讯参数。
无线modbus通信的实现方法
以上说明了采用有线rs485总线实现多台plc之间的远程控制方法,有时由于现场条件的限制,重新布设通信线路很不方便,例如山上与山下,或者横跨马路的情况,尤其对于工程改造项目二次布线几乎是甲方无法接受的。在这种情况下,可以采用dtd433无线通信模组代替通信电缆,实现起来非常方便,不需要
无线通信模组采用中心频率为433mhz开放的ism频段,内部使用全数字rf通信芯片与单片机组成无线数传系统,外部通信接口与rs485总线完全一致,为了使用方便,通信实现所发即所得,也就是说数据通信是完全的透明方式,这样的话,用两个dtd433模组能够直接代替有线的rs485通信导线。需要注意的是:
plc的modbus通信速率要与无线数传模组的波特率设置一致,例如通信参数可以设置为9600bps,8位数据,无效验位。
s7_200的rs485+连接dtd433的rs485_b;
s7_200的rs485-连接dtd433的rs485_a;
无线数传模组的供电电源为直流24v,与plc可以共用电源;
无线通讯距离在200米左右选用dtd433a模组;
无线通讯距离在1000米左右选用dtd433b模组;
无线通讯距离在3000米左右选用dtd433c模组;
保证通信距离,提高通信质量要选择高增益的吸盘天线,天线安放高度离地面越高效果越好。
modbus rtu主站使用了一些用户中断,在用户程序中不能禁止中断;
读取从站数据在程序中插入mbus_msg指令,注意从站地址设置用一致;
该例程访问的为一个从站,若访问不同的从站,可通过改变从站地址来实现。
modbus 从站读写程序
在个循环周期内插入mbus_init指令初始化modbus从站协议:
mode: 模式选择,启动/停止modbus,1=启动;0=停止
address: 从站地址,modbus从站地址,取值1~247
baud: 波特率,可选1200,2400,4800,9600,19200,38400,57600,115200
parity: 奇偶校验,0=无校验;1=奇校验;2=偶校验
delay: 延时,附加字符间延时,缺省值为0
done: 初始化完成标志,成功初始化后置1
error: 初始化错误代码
在本例子中,设置从站地址为8,port0 通讯波特率为9600bps,无校验;
本例子中modbus rtu从站指令使用的库存储为vb2000---vb2779,这段寄存器地址不能再被程序中的任何指令使用,包括mbus_init和mbus_slave 指令在内。
mbus_slave指令被用于为modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答modbus请求。在每次扫描且en输入开启时执行该指令。
展开全文