应网友的要求,我现说一下西门子S7-200之间Modbus的通信,STEP7-Micro/WIN指令库中有专门为MODBUS通信设计的子程序和中断程序,这样,使MODBUS设备通信变的更为简单.如何能让自已经学的更快,更为简单,最直接的方法就是一步一步跟着我来做。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在学习之间,让我们来了解一下如何在2台S7-200PLC之间实现MODBUS通信的相关数据
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(1)了解MODBUS的地址分配
1.主站寻址 是指发送至从站设备时的PLC地址分配
0001--0999是离散输出(线圈Q点) 如0001=Q0.0 0002=Q0.1 ..........00128=Q15.7
1001--1999是离散输入(输入I点) 如 1001=I0.0 1002=I0.1...........1008=I15.7
3001--3999是输入寄存器(模拟量AIW) 如 3001=AIW0 3002=AIW1
4001--4999是保持寄存器(对应于V点) 如 4001=V区
2.从站寻址 是指接收至主站设备时的PLC地址分配
0001--0999是离散输出(线圈Q点) 对应Q0.0-Q15.7
1001--1999是离散输入(输入I点) 对应I0.0-I15.7
3001--3999是输入寄存器(模拟量AIW) 对应AIW0-AIW62
4001--4999是保持寄存器(对应于V点) 对应V区
且要注意从站协议中允许对MODBUS主站输入,输出.模拟量,V区寄存器进行限定,这些地址都是死的,你只需记住就可以了.
(2)了解相关指令
1. 主设备指令
MBUS_CTRL 是用于S7-200的初始化、监视或禁止通信,必须正确的使用否则无法执行下一条指令
2. 相关指令介绍
EN 使能 BOOL
Mode 1为启用MODBUS 0关闭 BOOL
Buaud 波特率的设定 D WORD
Parity 奇偶校验 0无 1奇 2偶 BYTE
Timeout 从站应答时间 毫秒 WORD
ERROR 出错时的代码
3.MOBUS_MSG指令
First 向从站发送一次指令
Slave 从站地址 注意允许范围0-247
RW 0是读 1是写
Addr MODBUS起始地址
Count 读取或写入数据的数目
DataPtr V存储器的起使地址
重复的内容不加以描述,请自已向上查找
那么下面我们来做一个实例
首先在指令库中调用我需要的块,我们先在做主站程序
一定要注意程序块的库存储区
从机程序
楼主最近还看过