当前位置:首页 >> 信息与通信 >>

西门子S7_200PLC与组态王的无线通信Modbus方案

西门子 S7_200PLC 与组态王的无线通信 Modbus 方案

西门子 S7_200PLC 与组态王的无线通信 Modbus 方案 在这里介绍一种 PLC 的 MODBUS 无线组态通信的实现方 法。本方案可以作为西门子 PLC 与组态王通信的实例。 在工业现场可能会遇到这样的情况, 分布在不同地方 (车间、 控制室场所等) 的 PLC 需要与总控中心的组态王软件进行远 程通信,通常情况是采用有线 RS485 总线敷设电缆,通过 MODBUS 协议完成此功能。如果现场布线不方便的话,也 可以采用无线方式进行通信。本方案中采用了专门用于无线 通信的智能数据终端 DTD433M。 l 有线 MODBUS 网络:S7-200S7-200STEP

7S7-200PG/PC9.6kbps,8,N,1 人机界面 组态软件 l S7-200STEP 7PG/PCRS485

9.6 kbps 人机界面 组态软件 DTD433DTD433RS485 9.6 kbpsS7-200RS485 9.6 kbpsDTD433 无线 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 接口波

特率为 9600bps,8 N 1。 具有独特的软件无线电技术,保证高抗干扰能力和低 误码率 基于 FSK 的调制方式,采用高效前向纠错信道编码技术,提 高了数据抗突发干扰和随机干扰的能力。大量应用于高压强 干扰的电力系统监控。 可以提供多种产品规格适应于不同的传输距离 在空旷环境,天线安装位置离地面高度大于 2 米的情况下, DTD433MA 可靠传输距离可达 300m, DTD433MB 可靠传输 距离可达 1500m,DTD433MC 可靠传输距离可达 3000m。 自动完成智能数据控制,用户无需编制多余的程序 即使是半双工通信,用户也无需编制多余的程序,只要从接 口收/发数据即可,其它如空中收/发转换,控制等操作, DTD433M 自动完成。 无线数据终端的选择原则 l 直线空旷距离在 300 米以内可以选择

DTD433MA_S9600 l 直线空旷距离在 1000 米左右可以选择

DTD433MB_S9600 l 直线空旷距离在 2000 米左右可以选择

DTD433MC_S9600 三、试验设备及其接线

l l l

组态软件:组态王 6.53 S7-200 型号:CPU224XP CN,1 台 无线数据终端:DTD433MB_S9600

PC 电脑与无线数据终端 DTD433M 连接 RS-232 连线

电脑 RS232 串口

DTD433M

DTD433M 设置

RXD

DB9-Pin2 Rx

DB9-Pin2 Tx

K1: 1,2,3 OFF 4 ON K2: 1,2,3,4 OFF

TXD

DB9-Pin3 TX

DB9-Pin3 Rx

GND

DB9-Pin5 GND

DB9-Pin5 GND S7-200 与无线数据终端 DTD433M 连接 RS-485 连线

S7-200 Port0

DTD433M

DTD433M 设置

RS485+

A

DB9-Pin3 B

RS485+ A

K1: 1,2,3 ON 4 OFF K2: 1,2,3,4 OFF

RS485- B

DB9-Pin8 A

RS485- B 四、实物图片

五、方案附件 l l l 组态王测试程序 S7-200 测试程序 组态软件与西门子 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 00002 00003 ... 00127 00128 10001 10002 10003 ... 10127 10128 30001 30002 ... I15.6 I15.7 AIW0 AIW2 ... Q15.6 Q15.7 I0.0 I0.1 I0.2 Q0.0 Q0.1 Q0.2

30003 ... 30032 40001 40002 40003 ... 4xxxx ... ...

AIW4

AIW62 Hold Start HoldStart+2 HoldStart+4

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 对应

地址定义变量。 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 寄存 器。