1.SIMOTION侧编程
在D435中的PROGRAM中插入编程单元LAD/FBD UNIT(如MPI),在UNIT中插入程序(如SEND和RECEIVE)编写发送和接收程序如图13-13所示,也可以将通信程序编写在同一个程序中。
图13-13 SIMOTION程序的创建
本例中在SEND程序中编写发送程序,在RECEIVE程序中编写接收程序,发送和接收函数可以在Command library中的“Communication→Data transfer”目录下找到。
在程序SEND中调用_xsend函数发送数据,与PLC编写方式相似,将发送函数_xsend拖拽到LAD网络中,如图13-14所示。
图13-14 _xsend函数块
communicationmode为枚举数据类型,元素中包括“ABORT_CONNECTION”和“HOLD_CONNECTION”:
●“ABORT_CONNECTION”:通信完成之后释放连接资源。
●“HOLD_CONNECTION”:通信完成之后占用连接资源。
枚举类型变量的赋值可以使用MOVE指令,如图13-15所示。
图13-15 参数赋值
在程序receive中调用_xreceive函数接收数据,与PLC编写方式相似,将接收函数_xreceive拖拽到LAD网络中,如图13-16所示。
图13-16 _xreceive函数块
函数_xreceive的输入参数MESSAGEID、COMMANDID和NEXTCOMMAND与_xsend函数输入参数意义相同,发送与接收函数的参数MESSAGEID必须相同,本例中_xreceive输入参数定义的数据包标识符为8,与PLC发送块参数REQ_ID定义的标识符必须相同。
通信程序编写和编译完成后,将程序放置到D435的执行系统中调用,本例中将通信程序放置于BackgroundTask中运行(循环运行)。
2.PLC侧编程
PLC侧调用SFC65用于数据发送,发送程序如图13-17所示。
(www.xing528.com)
图13-17 PLC中调用发送程序
SFC65的参数解释如下:
1)REQ:发送请求,为1时发送。
2)CONT:相当于SIMOTION发送函数_xsend参数communicationmode,为0时通信完成之后释放连接资源,为1时通信完成之后占用连接资源。
3)DEST_ID:通信方的MPI地址,本例中SIMOTION的MPI地址为2。
4)REQ_ID:相当于SIMOTION发送函数_xsend参数MESSAGEID,定义发送报文的标识符,本例中与函数_xreceive中参数MESSAGEID定义必须相同。
5)SD:发送区,以指针的格式,本例中将DB1中DBB0以后10个字节作为发送区,最大为76个字节。
6)RET_VAL:发送的状态字。
7)BUSY:为1时,端口占用。
PLC侧调用发送块,在SIMOTION中需要调用函数_xreceive接收数据。
PLC侧调用SFC66用于接收数据,接收程序如图13-18所示。
图13-18 PLC中调用接收程序
SFC66的参数解释如下:
1)EN_DT:为1使能接收功能。
2)RET_VAL:接收状态字。
3)REQ_ID:接收数据包的标识符,本例中接收SIMOTION_xsend函数MESSAGEID参数定义的报文的标识符6。在SIMOTION中,接收、发送函数的MESSAGEID参数为输入参数,发送和接收的报文标识符必须提前定义,在PLC中发送块REQ_ID参数为输入参数,接收块REQ_ID参数为输出参数,识别接收数据包的标识符。
4)NDA:接收到新的数据包时产生脉冲信号。
5)RD:接收区,本例中接收SIMOTION发送的10个字节,并将接收的数据存储于DB2中DBB0以后的10个字节中。
将PLC中的通信程序编译下传到PLC中,通信建立。可以通过建立变量表和监控进行数据的监控测试。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。