一、硬件
可分为PLC与PLC通信,PLC与上位机通信,PLC与变频器通信,PLC与仪器仪表通信,触摸屏与仪器仪表、变频器通信等等。
1.串口通信
RS232
只支持1对1通信;距离近,不允许远距离传输,15m左右;全双工,发送和接收同时进行,速度慢。
RS485
半双工,通讯速度较快;传输距离较远,3000m左右;支持1对多通信。优先选择RS485。
RS422
具备RS485的优点,但界限复杂,成本高。
2.网口通信
现阶段主流通信。
二、协议
1.串口通信协议
PPI通信,属于西门子内部通信协议;
MPI通信;
Profibus DP通信;
USS通信,用于西门子变频器通信;
Modbus通信。
2.网口通信协议
开放式以太网通信:TCP;
S7通信,西门子内部产品之间通信。
三、程序编写
1.S7通信
PUT
步骤:
1.组态CPU,并添加新子网;
2.点击“连接”,选择S7连接;
3.右键点击CPU,添加新连接,依次点击添加、关闭;
4.选中S7_连接_1,填写伙伴地址;
5.查看本地ID号;
6.勾选系统和时钟存储器,1HZ表示1秒触发1次;
7.在“连接机制”里,勾选“允许来自远程对象的PUT/GET通信访问”;
8.新建一个DB块“PUT”,用于存储要发送的信息,取消“优化的块访问”,并添加如下变量;
9.在主程序块Main中调用PUT指令;
其中:
REQ表示触发信号;
ID表示本地ID号;
ADDR_1表示对方接收的数据,填写对方PLC存储区地址和要发送的字节数,只能以字节形式填写,如果发送的数据类型不是字节,则需要计算一下发送的数据占几个字节,这里发送DB块“PUT”中的数据,4个real型,转换成Byte后有16个;
SD_1表示要发送的数据,填写己方存储区地址和要发送的字节数。
GET
1.组态过程和PUT类似;
2.建立一个新的DB块“GET”,用于存储接收到的信息,取消“优化的块访问”,并添加如下变量;
3.在主程序块Main中调用GET指令;
其中:
ADDR_1表示对方发送的数据的存储区地址;
RD_1表示读取到的数据在己方的存储区地址。
2.开放式以太网通信
步骤:
1.组态两个CPU,两台均设置为“暖启动-RUN”;
2.勾选系统和时钟存储器;
3.在“连接机制”里,勾选“允许来自远程对象的PUT/GET通信访问”;
4.假设第一台PLC作为发送端,则在该CPU下新建一个DB块Send,取消优化的块访问,并添加如下变量;
5.在主程序块Main中调用TSEND_C指令,并组态;
6.第二台PLC为接收端,在该CPU下新建一个DB块Receive,取消优化的块访问,并添加如下变量;
7.在主程序块Main中调用TRCV_C指令,并组态;