[西门子] ABB PLC Modbus TCP通讯介绍及实操

[复制链接]
查看42301 | 回复0 | 2024-1-22 12:39:57 | 显示全部楼层 |阅读模式
本文介绍ABB PLC之间如何通过Modbus TCP进行通讯。使用两个PLC,其中Server使用AC500-eCo V3 PLC: PM5072。 Client使用AC500 V3 PLC:PM5650.

实验系统简图



工程电脑:安装PLC编程软件AutomationBuilder V2.5。电脑的IP设置在与Server和Client相同的网段内。在电脑中安装Uart2Any软件,以测试通讯。

服务器Server:PM5072自带两个以太网口。可把两个以太网口设置为交换机功能。这样如上图接线,电脑即可同时跟Server和Client通讯。服务器的IP设置为192.168.0.5.

客户端Client:PM5650 CPU的底板自带两个以太网口。其中Eth1口的IP保持默认为192.168.0.1.

创建工程,添加Server和Client

项目树下,通过添加对象,可添加对应的两个CPU:



添加完后的项目树如下:



为Server和Client添加相关协议:



操作视频如下:


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2444244976428564481

PLC与Modbus地址之间的对应关系

测试中,以Word进行数据交互。PLC中的%MW0对应Modbus地址40000,以此类推,%MW100对应Modbus地址40100

Modbus Address

Byte

Bit (byte-oriented)

Word

Double word

HEX

DEC

BYTE

BOOL

WORD

DWORD

Line 0

0000

0

%MB0.0

%MX0.0.0 ... %MX0.0.7

%MW0.0

%MD0.0

%MB0.1

%MX0.1.0 ... %MX0.1.7

0001

1

%MB0.2

%MX0.2.0 ... %MX0.2.7

%MW0.1

%MB0.3

%MX0.3.0 ... %MX0.3.7

0002

2

%MB0.4

%MX0.4.0 ... %MX0.4.7

%MW0.2

%MD0.1

%MB0.5

%MX0.5.0 ... %MX0.5.7

0003

3

%MB0.6

%MX0.6.0 ... %MX0.6.7

%MW0.3

%MB0.7

%MX0.7.0 ... %MX0.7.7

...

7FFE

32766

%MB0.65532

%MX0.65532.0 ... %MX0.65532.7

%MW0.32766

%MD0.16383

%MB0.65533

%MX0.65533.0 ... %MX0.65533.7

7FFF

32767

%MB0.65534

%MX0.65534.0 ... %MX0.65534.7

%MW0.32767

%MB0.65535

%MX0.65535.0 ... %MX0.65535.7


Server编程及测试

在Server中编写如下程序段



添加一个起始地址为%MW0,包含5个Word的数组ServerData。并添加一段各数组元素累加的程序。

ServerData 数组的首地址为%MW0,其对应Modbus的地址为0.

可以使用测试助手与Server进行通讯,以确认Server的状态。

操作视频如下:


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2444247366426869760

Client的读编程及对Server的读写

在Client中编写如下程序,功能块中的Addr设置为0,即对应Modbus地址0。  因此读写的区域对应Server中定义的数组:ServerData[0..4]。



其中第一个功能块的功能码为3,用于读Server的多个寄存器,读回的值存入数组RcvArray,操作视频如下:


video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2444249602997534722

第二个功能块的功能吗为16,用于写多个寄存器。把数组WriteArray中的数值写入Server,操作视频如下:



video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_2444251282715623425

Modbus TCP是工业现场使用最频繁的工业以太网协议!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则