使用西门子PLC集成的PN口实现S5 兼容通信使用入门

n

CPU自带的以太网接口可以使用OPEN IE的方式实现如下协议,分别介绍如下:
• TCP
• UDP
• ISO-on-TCP
注意:以下内容任何用户可以免费使用,复制和传递他人,程序的作者及拥有者不负责软件的功能性和兼容性,使用者须自己承担责任,由于内容免费,所以不保证错误的更正和热线支持!n

1. TCP通信

1.1通信程序块的准备
如下的通信块可以用来建立TCP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) FC97 "SET_TCP_ENDPOINTx" 用于修改UDT65类型变量内通信对象参数
FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 01: FB63,64,65,66n

FC97与UDT65需要从如下项目中打开获得:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门 ( 42 KB ) n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 02: FC97与UDT65n

首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。n

1.2通信程序编写n

1.2.1 生成数据块
在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 03: 生成UDT65类型变量n

1.2.2在OB1中编程
首先调用FC97 "SET_TCP_ENDPOINTx"n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 04: 调用FC97n

FC97参数说明如下:
• ID: 连接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型号(注意不是通信对方)为 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型号(注意不是通信对方)为 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型号(注意不是通信对方)为 CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为 CPU41x-3PN/DP
• ACTIVE: 主动或是被动建立连接,通信双方必须一个主动,一个被动
• LOC_PORT: CPU本地的TCP端口
• REM_PORT: 通信伙伴的TCP远程端口
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• V23:本机是否是CPU31x-2PN/DP FIRMWARE 版本为2.3或以下版本
• CON_DB:用UDT65生成的变量n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图05: 调用FB65 "T_CON"n

调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。n

1.2.3 调用发送和接收程序n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图06: 调用 FB63,64发送接收数据n

FB63 "TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。
FB64 "TRECV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。n

1.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 07: 调用FB66 "TDISCON"n

2. UDP通信

2.1通信程序块的准备
如下的通信块可以用来建立UDP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB67 "TUSEND"用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB68 "TURCV"用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) UDT66 "TADDR_PAR"存放用户通信参数
7) FC95"SET_UDP_ENDPOINT"用于建立本地UDP通信参数
8) FC96"SET_UDP_REMOTE"用于建立远程UDP通信参数
FB65,66,67,68这四个功能块可以在Standard Library -> Communication Blocks里得到:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 08: FB65,66,67,68n

FC95,96与UDT65,66需要从如下项目中打开获得:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门 ( 41 KB ) n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 09: FC95,96与UDT65,66n

首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。n

2.2通信程序编写n

2.2.1 生成数据块
然后在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 10: 生成UDT65类型变量n

然后在程序中生成另一个DB块,块号不限(本例为db102),在块中建立变量DB_VAR,类型为UDT66n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 11: 生成UDT66类型变量n

2.2.2在OB1中编程
首先调用FC95,96n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门
图 12:调用FC95,96n

定义的本地UDP端点连接参数:
通过FC95 "SET_UDP_ENDPOINT"设置,下列参数需要考虑:
• ID: 连接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型号(注意不是通信对方)为 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型号(注意不是通信对方)为 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型号(注意不是通信对方)为CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为CPU41x-3PN/DP
• LOC_PORT: CPU本地的TCP端口
通过FC96 "SET_UDP_REMOTE"定义远端的UDP端点. 下列参数需要考虑:
REM_PORT: 通信方端口号
IP_ADDR1 ... IP_ADDR4: 通信方IP地址n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 13: 调用FB65 "T_CON"n

调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。n

2.2.3 调用发送和接收程序n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 14: 调用FB67,68接收和发送数据n

FB67 "TUSEND"发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。"ADDR"填写UDT66生成的变量。
FB68 "TURCV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。"ADDR"填写UDT66生成的变量。n

2.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 15: 调用FB66 "TDISCON"n

3. ISO ON TCP通信

3.1通信程序块的准备
如下的通信块可以用来建立ISO ON TCP通信,您需要把这些程序块拷贝到您的项目中:
1) FB65 "TCON" 用于建立连接,连接时需要UDT65来提供参数
2) FB66 "TDISCON" 用于断开连接
3) FB63 "TSEND" 用于发送数据到S7站点、S5站点、PC站或者第三方设备
4) FB64 "TRCV" 用于从S7站点、S5站点、PC站或者第三方设备接收数据
5) UDT65 "TCON_PAR"存放用户通信参数
6) FB420 "SET_ISO_ENDPOINT" 用于修改UDT65内通信对象参数
7) FC21 被FB420调用
FB63,64,65,66这四个功能块可以在Standard Library -> Communication Blocks里得到:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 16: FB63,64,65,66n

FB420 FC21与UDT65需要从如下项目中打开获得:n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门 ( 50 KB ) n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 17: FB420 FC21与UDT65n

首先建立一个S7-300或者S7-400站,拷贝如上程序块到项目中。n

3.2通信程序编写n

3.2.1 生成数据块
在程序中生成一个DB块,块号不限(本例为DB101),在块中建立变量DB_VAR,类型为UDT65n

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 18: 生成UDT65类型变量n

3.2.2在OB1中编程
首先生成一个FB块,本例为FB400:
在静态变量区建立一个结构“T_TSAP“,包含如下变量:
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有两个前导字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP规定)和 0x02(CPU槽号)n

本地 TSAP 远程TSAP
ASCII TCP-1 TCP-1
Hexadecimal E0.02.54.43.50.2D.31 54.43.50.2D.31

2) LOC_TSAP(STRING14)= 本地用户定义的ASCII字符 (默认 -> 'TCP-1')
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用两个前导符,只适用于第三方设备!如果是西门子PLC作为通信对象,则需要根据实际情况填写CPU 槽号,例如B#16#2
4) REM_TSAP (STRING16)= 远程用户定义的ASCII字符(默认 -> 'TCP-1'):

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图 19: 生成T_TSAP结构

调用FB420

使用西门子PLC集成的PN口实现S5 兼容通信使用入门
图 20: 调用FB420

• ID: 连接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型号(注意不是通信对方)为 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型号(注意不是通信对方)为 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型号(注意不是通信对方)为CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型号(注意不是通信对方)为CPU41x-3PN/DP
• ACTIVE: 主动或是被动建立连接, 通信双方必须一个主动,一个被动
• T_TSAP: 静态变量区的结构变量,用于ISO ON TCP 通信的TSAP地址
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• CON_DB:用UDT65生成的变量

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图21: 调用FB65 "T_CON"

调用FB65 ,通过提供给FB65的输入参数"REQ"一个上升沿来建立连接。 “ID”为连接ID,“CONNECT”参数填写用UDT65生成的变量, 连接建立后会一直保持,直到调用FB66 "TDISCON"断开连接,CPU停止或者断电。

3.2.3 调用发送和接收程序

使用西门子PLC集成的PN口实现S5 兼容通信使用入门

图22: 调用 FB63,64发送接收数据

FB63 "TSEND" 发送请求依靠输入参数"REQ"的上升沿来实现,如果“BUSY”位为true时不要触发"REQ"。输出参数 "DONE", "ERROR" 和 "STATUS" 用于评估工作的情况。
FB64 "TRECV" 用于接收数据,EN_R始终为true, “ID “填写连接ID,”DATA”填写接收数据区,输出参数"NDR" 用于表示新的数据已经收到,输出参数"LEN" 表示接收的数据长度。

3.2.4断开连接
调用FB66 "TDISCON",“ID “填写连接ID,输入参数"REQ"的上升沿来实现断开连接操作。

使用西门子PLC集成的PN口实现S5 兼容通信使用入门
图 23: 调用FB66 "TDISCON"

关键词
S5兼容通信、 TCP、 UDP、 ISO ON TCP 、PN 、OPEN IE

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论