实现西门子S71200/1500与三菱FX系列PLC通讯

一、需求介绍

西门子S71200/1500需要读取三菱FX2N的实时温度值(内存地址:D200)和实时压力值(内存地址:D201)。

二、需求分析

  1. 三菱FX2N自带的是RS422的串行接口,而西门子S71200/1500自带的是以太网口,由于物理接口的不同,两个PLC之间无法直接通讯;
  2. 三菱FX2N的通讯协议是编程口协议,是一种串行接口协议,而西门子S71200/1500的通讯协议是S7协议,或者是ModbusTCP协议,是一种网络接口协议,由于通讯协议的不同,两个PLC之间无法直接通讯;

这里为了实现两个PLC之间的数据交换,就必须要解决物理接口和通讯协议不一致的问题。

三、硬件连接

可以在三菱FX2N一侧加装硬件:NET30-FX,它能解决物理接口和通讯协议不一致的问题:

  1. 首先可以将三菱FX2N的RS422串行接口转成以太网口,解决了两个PLC物理接口不一致的问题;
  2. 其次可以将三菱FX2N的编程口协议转成ModbusTCP协议,解决了两个PLC通讯协议不一致的问题。

最终将NET30-FX、西门子S71200/1500,监控PC通过网线接到交换机。

实现西门子S71200/1500与三菱FX系列PLC通讯_第1张图片

四、软件设置

这里,西门子S71200/1500需要作ModbusTCP的客户端,而三菱FX2N需要作ModbusTCP的服务端。

三菱FX2N通过NET30-FX,已经实现了ModbusTCP的服务端的功能,ModbusTCP和三菱FX2N内部寄存器之间的对应关系如下:

MODBUS地址

PLC内部寄存器地址

数据类型

计算公式

modbus功能号

最大指令数

000001~

输出线圈:Y0~

Ym = 000001+m    

FC1(读线圈)

FC5(写线圈)

FC1:512

FC5:1

005001~

特殊:M8000~

M8m = 005001+m  

006001~

定时器线圈:T0~

Tm = 006001+m

007001~

计数器线圈:C0~

Cm = 007001+m

010001~

线圈:M0~

Mm = 010001+m

030001~

线圈:S0~

Sm = 030001+m

100001~

输入:X0~

Xm = 100001+m    

FC2(读输入)

512

400001~

定时器:T0~

Tm = 400001+m

FC3(读寄存器)

FC16(写寄存器)

FC6(写单一寄存器)

FC3:127

FC16:127

FC6:1

401001~

计数器:C0~C199

Cm = 401001+m

411001 ~

计数器:C200~C255

Cm = 411001+(m-200)*2

401301~

特殊:D8000~

D8m = 401301+m        

402001~

资料暂存器:D0~

Dm = 402001+m       

420001~

文件寄存器:R0~

Rm=420001+m          

通过公式计算出:

实时温度值D200对应的Modbus地址是402201;

实时压力值D201对应的Modbus地址是402202;

西门子S71200/1500可以通过调用通讯库中的MB_CLIENT指令实现ModbusTCP的客户端的功能:

实现西门子S71200/1500与三菱FX系列PLC通讯_第2张图片

MB_CLIENT指令参数中设置的IP地址(192.168.1.208)是NET30-FX的IP地址(NET30-FX的IP可以任意设置),并设置读取了Modbus地址402201(三菱FX2N的D200)开始的2个字存入DB66.DBW0开始的2个字中。

五、数据展示

通过三菱FX2N的编程软件读取到的D200和D201的值如下:

实现西门子S71200/1500与三菱FX系列PLC通讯_第3张图片

通过西门子S71200/1500的编程软件读取到的DB66.DBW0和DB66.DBW2的值如下:

实现西门子S71200/1500与三菱FX系列PLC通讯_第4张图片 

通过对比,数据完全一致,S71200/1500成功通过ModbusTCP的通讯方式读取了三菱FX2N的数据。

你可能感兴趣的:(通讯网关使用及案例,工业通讯桥接器,S71200与三菱PLC通讯)