-
图文详情
-
产品属性
-
相关推荐
西门子S7_200PLC与组态王的无线通信Modbus方案
在这里介绍一种PLC的MODBUS无线组态通信的实现方法。本方案可以作为西门子PLC与组态王通信的实例。
在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC需要与总控中心的组态王软件进行远程通信,通常情况是采用有线RS485总线敷设电缆,通过MODBUS协议完成此功能。如果现场布线不方便的话,也可以采用无线方式进行通信。本方案中采用了专门用于无线通信的智能数据终端DTD
l 有线MODBUS网络:
S7-200 S7-200 STEP 7 S7-200 PG/PC 9.6kbps,8,N,1 人机界面 组态软件
l S7-200 STEP 7 PG/PC RS485 9.6 kbps 人机界面 组态软件 DTD433 DTD433 RS485 9.6 kbps S7-200 RS485 9.6 kbps DTD433
在实际系统中,人机界面与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网
DTD
◆ 具有独特的软件无线电技术,保证高抗干扰能力和低误码率
基于FSK的调制方式,采用高效前向纠错信道编码技术,提高了数据抗突发干扰和随机干扰的能力。大量应用于高压强干扰的电力系统监控。
◆ 可以提供多种产品规格适应于不同的传输距离
在空旷环境,天线安装位置离地面高度大于
◆ 自动完成智能数据控制,用户无需编制多余的程序
即使是半双工通信,用户也无需编制多余的程序,只要从接口收/发数据即可,其它如空中收/发转换,控制等操作,DTD
◆ 无线数据终端的选择原则
l 直线空旷距离在
l 直线空旷距离在
l 直线空旷距离在
三、试验设备及其接线
l 组态软件:组态王6.53
l S7-200型号:CPU224XP CN,1台
l 无线数据终端:DTD433MB_S9600
PC电脑与无线数据终端DTD
RS-232连线 | 电脑RS232串口 | DTD | DTD |
RXD | DB9-Pin2 Rx | DB9-Pin2 Tx | K1: 1,2,3 OFF 4 ON |
TXD | DB9-Pin3 TX | DB9-Pin3 Rx | |
GND | DB9-Pin5 GND | DB9-Pin5 GND |
S7-200与无线数据终端DTD
RS-485连线 | S7-200 Port0 | DTD | DTD |
RS485+ A | DB9-Pin3 B | RS485+ A | K1: 1,2,3 ON 4 OFF |
RS485- B | DB9-Pin | RS485- B |
四、实物图片
五、方案附件
l 组态王测试程序
l S7-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
00001 Q0.0
00002 Q0.1
00003 Q0.2
... ...
00127 Q15.6
00128 Q15.7
10001 I0.0
10002 I0.1
10003 I0.2
... ...
10127 I15.6
10128 I15.7
30001 AIW0
30002 AIW2
30003 AIW4
... ...
30032 AIW62
40001 Hold Start
40002 HoldStart+2
40003 HoldStart+4
... ...
4xxxx HoldStart+2 x (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侧需要 1 4 6 短接,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 对应
地址定义变量。
需要注意如下几点:
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 寄存器。
达泰
制造商
全新
陕西西安