使用FB65但RFID与PC的连接DB用法有一定的区别

描述

同样是使用使用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通讯时作从站.

责任编辑:lq

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分