在做通讯前,我们必须满足以下软硬件要求:
●1.一台装有TIA V16博途软件电脑;
●2.两台西门子系列PLC,必须满足博途V16版本使用;
●3.一个DP9针公头(1200端使用),一个DP15针公头(1500端使用)及一条两芯带屏蔽线(规格0.5平方的);
●4.今天实验的通讯模块型号规格如下:
CM1241RS422/485 订货号:6ES7 241-1CH320XB0;
CMPtP RS422/485HF 订货号:6ES7 541-1AB00-0AB0;
下面图片展示今天所需要的通讯模块及DP头;
![西门子PLC 1200和1500的ModbusRTU通讯实例插图 西门子PLC 1200和1500的ModbusRTU通讯实例插图](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100553583.jpg)
1200端通讯模块
![西门子PLC 1200和1500的ModbusRTU通讯实例插图1 西门子PLC 1200和1500的ModbusRTU通讯实例插图1](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100554630.jpg)
1500端通讯模块
![西门子PLC 1200和1500的ModbusRTU通讯实例插图2 西门子PLC 1200和1500的ModbusRTU通讯实例插图2](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100555671.jpg)
1200端DP9针公头
![西门子PLC 1200和1500的ModbusRTU通讯实例插图3 西门子PLC 1200和1500的ModbusRTU通讯实例插图3](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100556951.jpg)
1500端DB15针公头
1200和1500 modbus连线:
1200 PLC端 1500PLC端
3+ 11+
8- 4-
组态主站(1200端):
1.)建立一个项目,并添加CPU和RS485模块如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图4 西门子PLC 1200和1500的ModbusRTU通讯实例插图4](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100557119.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图5 西门子PLC 1200和1500的ModbusRTU通讯实例插图5](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100558849.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图6 西门子PLC 1200和1500的ModbusRTU通讯实例插图6](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100559437.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图7 西门子PLC 1200和1500的ModbusRTU通讯实例插图7](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100600790.jpg)
2.)硬件我们添加完毕,这里设置CM1241-R485模块参数:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图8 西门子PLC 1200和1500的ModbusRTU通讯实例插图8](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100601653.jpg)
3.)建立一个供1200PLC端(主站)存储数据的DB块:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图9 西门子PLC 1200和1500的ModbusRTU通讯实例插图9](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100602987.jpg)
修改DB块“优化进行访问”。
![西门子PLC 1200和1500的ModbusRTU通讯实例插图10 西门子PLC 1200和1500的ModbusRTU通讯实例插图10](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100602478.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图11 西门子PLC 1200和1500的ModbusRTU通讯实例插图11](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100603214.jpg)
4.)建立需要的数据:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图12 西门子PLC 1200和1500的ModbusRTU通讯实例插图12](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100604494.jpg)
5.)添加一个FC函数块:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图13 西门子PLC 1200和1500的ModbusRTU通讯实例插图13](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100605138.jpg)
6.)我们把程序写到FB程序段里面,设置Modbus_Comm_Load管脚参数:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图14 西门子PLC 1200和1500的ModbusRTU通讯实例插图14](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100606286.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图15 西门子PLC 1200和1500的ModbusRTU通讯实例插图15](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100607402.jpg)
7.)因为Modbus_Comm_Load块默认工作模式时RS232,我们这里需要修改成RS485模式,修改有两种方式,第一种是Modbus_Comm_Load背景DB块里面修改“MODE”参数由16#00修改成16#04,如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图16 西门子PLC 1200和1500的ModbusRTU通讯实例插图16](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100608728.jpg)
第二种是利用“move”指令传递一个4给到Modbus_Comm_Load_MODE里,如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图17 西门子PLC 1200和1500的ModbusRTU通讯实例插图17](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100609439.jpg)
设置Modbus_Mastr功能块管脚参数:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图18 西门子PLC 1200和1500的ModbusRTU通讯实例插图18](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100610286.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图19 西门子PLC 1200和1500的ModbusRTU通讯实例插图19](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100611184.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图20 西门子PLC 1200和1500的ModbusRTU通讯实例插图20](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100612506.jpg)
8.)测试程序:
写入从站1500Q区:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图21 西门子PLC 1200和1500的ModbusRTU通讯实例插图21](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100613581.jpg)
读取从站1500Q区:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图22 西门子PLC 1200和1500的ModbusRTU通讯实例插图22](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100614224.jpg)
编写完成主站程序,接着组态从站PLC
10.)建立一个项目,并添加CPU和通讯模块等如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图23 西门子PLC 1200和1500的ModbusRTU通讯实例插图23](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100614406.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图24 西门子PLC 1200和1500的ModbusRTU通讯实例插图24](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100615167.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图25 西门子PLC 1200和1500的ModbusRTU通讯实例插图25](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100616470.jpg)
11.)设置PtP-RS422/485通讯模块参数如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图26 西门子PLC 1200和1500的ModbusRTU通讯实例插图26](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100617144.jpg)
12.添加一个全局数据背景DB块:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图27 西门子PLC 1200和1500的ModbusRTU通讯实例插图27](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100618318.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图28 西门子PLC 1200和1500的ModbusRTU通讯实例插图28](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100619238.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图29 西门子PLC 1200和1500的ModbusRTU通讯实例插图29](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100620453.jpg)
13.)建立存储数据:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图30 西门子PLC 1200和1500的ModbusRTU通讯实例插图30](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100621182.jpg)
14.)我们开始写入程序,给FB程序段添加一个“Modbus_comm_Load”通信初始化指令块,并设置相应的管脚参数:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图31 西门子PLC 1200和1500的ModbusRTU通讯实例插图31](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100622501.jpg)
![西门子PLC 1200和1500的ModbusRTU通讯实例插图32 西门子PLC 1200和1500的ModbusRTU通讯实例插图32](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100623717.jpg)
由于Modbus_comm_Load”功能块默认是RS232,而我们启用RS485,所以的修改。第一种是直接修改 Modbus_comm_Load如下图所示:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图33 西门子PLC 1200和1500的ModbusRTU通讯实例插图33](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100624633.jpg)
第二种和前面讲修改1200通信数据块的方法一致如下图:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图34 西门子PLC 1200和1500的ModbusRTU通讯实例插图34](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100625571.jpg)
15,添加从站指令块:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图35 西门子PLC 1200和1500的ModbusRTU通讯实例插图35](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100626853.jpg)
16.测试程序:
主站1200写入从站1500的Q0.0,Q0.1;
![西门子PLC 1200和1500的ModbusRTU通讯实例插图36 西门子PLC 1200和1500的ModbusRTU通讯实例插图36](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100627625.jpg)
从站1500写入主站1200的Q0.2,Q0.3, Q0.4;
![西门子PLC 1200和1500的ModbusRTU通讯实例插图37 西门子PLC 1200和1500的ModbusRTU通讯实例插图37](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100627713.jpg)
监控程序:
![西门子PLC 1200和1500的ModbusRTU通讯实例插图38 西门子PLC 1200和1500的ModbusRTU通讯实例插图38](https://image.modbus.cn/wp-content/uploads/2023/09/20230911100629541.jpg)
若有收获,就点个赞吧