同样是使用使用FB65但RFID与PC的连接DB用法有一定的区别:
首先说一下什么是FB65:
通过TCP和ISO on TCP使用
两个通信伙伴都调用FB 65 "TCON"来设置和建立通信连接。在这些参数中,您要指定哪个伙伴是主动通信传输点、哪个伙伴是被动通信传输点。
设置并建立连接后,CPU会自动对连接进行维护和监视。
如果连接中断,如由于线路中断或远程通信伙伴而造成的中断,主动伙伴会尝试重新建立已组态的连接。在这种情况下,不必再次调用FB 65 "TCON"。
当调用FB 66 "TDISCON"或CPU进入STOP模式时,现有连接将被终止并删除已组态的连接。要重新设置并再次建立该连接,必须再次调用FB 65 "TCON"。
下面各自介绍一下程序结构和设置:
RFID的设置
SICKRFID里软件程序里的设置:
RFID的背景数据块定义FB的连接格式:和UDT65一致!
在程序中设置格式:
FB520程序分析:
用户程序和操作系统通信层之间该连接的标识号(数值范围:W#16#0001至W#16#0FFF)您必须在各个带有标识号的块中指定参数的值。
TCON_PARAM.id := INT_TO_WORD(VerbID.ID); 20
建立连接的方式的标识号:必须将FALSE分配给该参数。
TCON_PARAM.active_est := True;S7作Client时为主动 TRUE
S7作Server时为被动FALSE
TCON_PARAM.connection_type := B#16#11; 协议类型:11TCP/13UDP
B#16#03:通过CPU 319-3 PN/DP上的集成IE接口进行通信
TCON_PARAM.local_device_id := INT_TO_BYTE(VerbID.DeviceID); =3
以十六进制表示的端口号
TCON_PARAM.local_tsap_id[1] := WORD_TO_BYTE(SHR(IN:=INT_TO_WORD(VerbID.lokalPort),N:=8)); 2111
TCON_PARAM.local_tsap_id[2] := WORD_TO_BYTE(INT_TO_WORD(VerbID.lokalPort));
TCON_PARAM.rem_staddr_len := B#16#4; 远程连接终端的地址长度:4: 参数rem_staddr中有效的IP地址
TCON_PARAM.rem_tsap_id_len := B#16#2; 所使用的参数rem_tsap_id的长度
连接设备的IP地址:
TCON_PARAM.rem_staddr[1] := INT_TO_BYTE(VerbID.IP[1]); 10
TCON_PARAM.rem_staddr[2] := INT_TO_BYTE(VerbID.IP[2]);200
TCON_PARAM.rem_staddr[3] := INT_TO_BYTE(VerbID.IP[3]);27
TCON_PARAM.rem_staddr[4] := INT_TO_BYTE(VerbID.IP[4]);48
TCON_PARAM.rem_tsap_id[1] := B#16#8; 远程标示号0840---2112
TCON_PARAM.rem_tsap_id[2] := B#16#40; 远程标示号
在与中控室电脑连接时FB600 的静态变量格式与RFID的格式一致证明
DB860关于与PC连接用设置结构:
FB600程序分析:
L DBW [AR1,P#0.0] 1 连接ID用户程序和操作系统通信层之间该连接的标识号
T #Verbindung.id
L B#16#11 使用TCP连接方式
T #Verbindung.connection_type
SET 建立连接的方式的标识号:必须将FALSE分配给该参数。
R #Verbindung.active_est
L 0 //0 不用指0
T #Verbindung.rem_staddr_len // 远程连接终端的地址长度
PC的IP地址:
L DBW [AR1,P#4.0] //VerID.IP[1] 192
T #Verbindung.rem_staddr[1]
L DBW [AR1,P#6.0] //VerID.IP[2] 168
T #Verbindung.rem_staddr[2]
L DBW [AR1,P#8.0] //VerID.IP[3] 0
T #Verbindung.rem_staddr[3]
L DBW [AR1,P#10.0] //VerID.IP[4] 11
T #Verbindung.rem_staddr[4]
L 0
T #Verbindung.rem_tsap_id_len // 所使用的参数rem_tsap_id的长度
连接设备的IP地址:
L 2 //所使用的参数local_tsap_id的长度为2
T #Verbindung.local_tsap_id_len
L DBW [AR1,P#12.0] //2000
T #Verbindung.local_tsap_id[2] // 低字节
SRW 8
T #Verbindung.local_tsap_id[1] // 高字节
L DBW [AR1,P#2.0] B#16#03:通过CPU 319-3 PN/DP上的集成IE接口进行通信
T #Verbindung.local_device_id
从对FB600和FB520程序分析我们可以知道它们公用的程序结构还是使用了UDT65的标准化的结构,都使用了TCP连接,只是端口各不相同罢了,一个是2111而另一个是2000.在就是和RFID通讯时作主站,和PC通讯时作从站.
全部0条评论
快来发表一下你的评论吧 !