西门子S7200PLC与组态王的无线通信Modbus方案.docx
《西门子S7200PLC与组态王的无线通信Modbus方案.docx》由会员分享,可在线阅读,更多相关《西门子S7200PLC与组态王的无线通信Modbus方案.docx(8页珍藏版)》请在冰豆网上搜索。
![西门子S7200PLC与组态王的无线通信Modbus方案.docx](https://file1.bdocx.com/fileroot1/2022-11/17/a257dba5-2aef-4bfb-9733-b36a1930e97e/a257dba5-2aef-4bfb-9733-b36a1930e97e1.gif)
西门子S7200PLC与组态王的无线通信Modbus方案
西门子S7-200PLC与组态王的无线通信Modbus方案
西门子S7_200PLC与组态王的无线通信Modbus方案
西门子S7_200PLC与组态王的无线通信Modbus方案
在这里介绍一种PLC的MODBUS无线组态通信的实现方法。
本方案可以作为西门子PLC与组态王通信的实例。
在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC需要与总控中心的组态王软件进行远程通信,通常情况是采用有线RS485总线敷设电缆,通过MODBUS协议完成此功能。
如果现场布线不方便的话,也可以采用无线方式进行通信。
本方案中采用了专门用于无线通信的智能数据终端DTD433M。
l有线MODBUS网络:
S7-200S7-200STEP7S7-200PG/PC9.6kbps,8,N,1人机界面
组态软件
lS7-200STEP7PG/PCRS485
9.6kbps人机界面
组态软件DTD433DTD433RS485
9.6kbpsS7-200RS485
9.6kbpsDTD433无线MODBUS网络:
在实际系统中,人机界面与PLC不在一起,中心计算机一般放置在控制室,而PLC安装在现场车间,二者之间距离往往从几十米到几千米。
如果布线的话,需要挖沟施工,比较麻烦,这种情况下比较适合采用无线通信方式。
一、PLC与组态王的Modbus通信
1.下载S7_200程序
需要向PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控公司提供。
此程序默认的PLC通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程SBR0中的VB8,SMB30进行修改);
2.设备选择
选择以下两个设备都可以。
3.演示程序界面
打开组态王演示工程文件
二、满足西门子PLC的MODBUS通信协议的专用无线数据终端
为了满足西门子PLC和组态王的MODBUS通信协议,对无线数据终端具有以下要求:
适合于RS232/RS485串口连接,可以直接代替有线的RS485网
DTD433M提供标准的RS232/RS485口。
DTD433M接口波
l组态软件:
组态王6.53
lS7-200型号:
CPU224XPCN,1台
l无线数据终端:
DTD433MB_S9600
PC电脑与无线数据终端DTD433M连接RS-232连线
电脑RS232串口
DTD433M
DTD433M设置
RXD
DB9-Pin2Rx
DB9-Pin2Tx
K1:
1,2,3OFF
4ON
K2:
1,2,3,4OFF
TXD
DB9-Pin3TX
DB9-Pin3Rx
GND
DB9-Pin5GND
DB9-Pin5GND
S7-200与无线数据终端DTD433M连接RS-485连线
S7-200Port0
DTD433M
DTD433M设置
RS485+A
DB9-Pin3B
RS485+A
K1:
1,2,3ON
4OFF
K2:
1,2,3,4OFF
RS485-B
DB9-Pin8A
RS485-B
四、实物图片
五、方案附件
l组态王测试程序
lS7-200测试程序
l组态软件与西门子PLC的无线MODBUS通信方案.pdf
六、西门子提供的Modbus设备地址
1.Modbus主设备寻址
Modbus地址通常写作包含数据类型和偏移量的5个字符的数值。
第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。
然后,Modbus主设备指令将地址映射至正确的功能,以便发送到从站。
Modbus主设备指令支持下列Modbus地址:
00001至09999是离散输出(线圈)
10001至19999是离散输入(触点)
30001至39999是输入寄存器(通常是模拟量输入)
40001至49999是保持寄存器
所有Modbus地址均以1为基位,表示第一个数据值从地址1开始。
有效地址范围将取决于从站。
不同的从站将支持不同的数据类型和地址范围。
2.Modbus从站寻址
Modbus地址通常被写为包含数据类型和偏移量的5个字符的数值。
第一个字符决定数据类型,最后四个字符在数据类型中选择适当的数值。
然后,Modbus主设备将地址映射至正确的功能。
Modbus从站指令支持下列地址:
00001至00128是映射至Q0.0-Q15.7的离散输出
10001至10128是映射至I0.0-I15.7的离散输入
30001至30032是映射至AIW0至AIW62的模拟输入寄存器
40001至4xxxx是映射至V存储器的保持寄存器。
所有Modbus地址均以1为基位。
下表显示映射至S7-200地址的Modbus地址。
3.Modbus地址S7-200
00001Q0.0
00002Q0.1
00003Q0.2
......
00127Q15.6
00128Q15.7
10001I0.0
10002I0.1
10003I0.2
......
10127I15.6
10128I15.7
30001AIW0
30002AIW2
30003AIW4
......
30032AIW62
40001HoldStart
40002HoldStart+2
40003HoldStart+4
......
4xxxxHoldStart+2x(xxxx-1)
Modbus从站协议允许您限制Modbus主设备可存取的输入、输出、模拟输入和保持寄存器(V存储器)数量。
MBUS_INIT指令的MaxIQ参数指定Modbus主设备允许存取的离散输入或输出(I或Q)的最大数目。
MBUS_INIT指令的MaxAI参数指定Modbus主设备允许存取的输入寄存器(AIW)的最大数目。
MBUS_INIT指令的MaxHold参数指定Modbus主设备允许存取的保持寄存器(V存储器字)的最大数目。
请参阅MBUS_INIT指令说明,了解有关为Modbus从站设定存储器限制的进一步详情。
七、MODBUS常见问题解答
1.我的设备支持modbus设备,能否直接与组态王软件连接?
只要设备是标准的modbus协议设备,即可使用组态王设备列表下的PLC-->莫迪康
-->MODBUSRTU(或者ACSII码)进行通信。
但具体的寄存器地址对照表必须从设备厂家
索取。
2.我的支持modbus协议的串口设备,能否与多个上位软件(比如组态王软件和某品
牌触摸屏)同时通讯?
因为modbus串口协议不支持多主站,所以不能多个软件同时与modbus设备同时通
信。
3.在组态王工程中建立多个modbusTCPIPserver设备定义,分别使用两台客户端对其
访问,只有站点高的那个server通讯ok,站点低的通讯失败,为什么?
这是因为在组态王软件中只支持建立一个modbusTCPIPserver,当建立多个server
时,组态王客户端则会自动与站点高的server进行通讯,所以会导致站点低的通讯失败。
4.如何实现组态王数据通过串口或者以太网驱动方式传送到其他组态软件或者应用程
序中?
如果其他组态软件或者应用程序支持modbus协议,则可以通过组态王提供的
modRTUserver或者modbusTCPserver驱动来实现。
5.组态王与支持Modbus协议的设备进行通讯时,组态王画面上显示的数据不正确常有
哪些原因?
引起数据不正确的原因主要有如下几点:
1)组态王中定义的寄存器地址跟实际设备不一致导致。
比如某些使用modbus协议
通讯的设备的数据地址是从0开始的,而组态王modbus协议驱动寄存器地址是从1开
始的,所以遇到此种情况时在组态王中定义变量时,寄存器地址要进行加1处理;
2)数据词典中最大原始值和最大值定义不不当;比如最大原始值和最大值不一样会
导致画面看到的数据和实际设备不一致;
3)组态王读取FLOAT和LONG类型的数据时,没有使用提供的SwapF和SwapL
寄存器来调整FLOAT型和LONG型数据的字节顺序;
4)LONG或FLOAT型的双字的数据,没有按照间隔隔地址方式定义;因为modbus
协议所对应的参数地址一般按照字为基本单位进行分地址排序的。
6.组态王与西门子200plc自由口协议通过modem通讯,硬件接线怎样实现?
设备上插标准PPI电缆,modem9针口通过一个标准232交叉线接到PPI电缆上即
可,232交叉线的modem侧需要146短接,7和8短接。
7.西门子200plc通过modbus协议与组态王通讯时,组态王中定义的寄存器地址与plc
地址是如何对应的?
映射关系如下:
0-Q,1-I,3、4、8、9-V;
3,4,8,9的dd号与PLC中V寄存器的偏移地址(实际地址-1000)的对应关系:
组态王中(寄存器的dd号-1)*2=PLC中的V寄存器的偏移地址。
组态王中40031
对应PLC:
VW1060(组态王中寄存器4表示SHORT型变量)组态王中90640对应PLC:
VD2278(组态王中寄存器9表示FLOAT型变量)。
注:
上面的对应关系是针对用户使用的是亚控公司提供了PLC(MODBUS)通讯的初
始化程序,如果用户是自己编程写的初始化程序,则根据实际程序规定的modbus对应
地址定义变量。
8.西门子200plc通过modbus协议与组态王通讯,需要注意哪些事项?
需要注意如下几点:
1)需要向PLC中下载对应的初始化程序(KVmoddbus.mwp),由亚控提供。
此程
序默认的plc通讯端口为port0,地址为2,波特率9600,无校验(地址和波特率可由程
SBR0中的VB8,SMB30进行修改);
2)由于PLCModbus协议程序占用V1000及以前的地址,所以用户在编写逻辑控制
程序中用到的寄存器不能和亚控提供的协议中所占用的V区地址冲突;
3)西门子S7200PLC和通过modbus协议和组态王通讯时,CPU上的开关必须拨在
RUN状态,否则PLC中的modbus通讯程序没有处于运行状态,组态王和设备通过自由
口协议肯定通讯失败;
9.西门子200plc通过GPRS链路和组态王通讯,使用哪种协议方式比较好?
推荐使用自由口/modbusRTu协议。
ppi协议实际上也支持通过GPRS链路和组态王通讯,但由于PPI协议的特殊性,
GPRS方式下通讯效果不是很好,因此不推荐客户使用。
10.组态王提供的ModbusRTUServer和ModbusRTU驱动的寄存器是怎样对应的?
ModbusRTUServer的B寄存器对应ModbusRTU的0寄存器;
ModbusRTUServer的R寄存器对应ModbusRTU的4寄存器。