首页 理论教育 编程技巧:使用CPLADDR、SEND等变量控制从站输入输出

编程技巧:使用CPLADDR、SEND等变量控制从站输入输出

时间:2023-06-15 理论教育 版权反馈
【摘要】:CPLADDR:CP342-5的地址SEND:发送区,对应从站的输出区RECV:接收区,对应从站的输入区DONE:发送完成一次产生一个脉冲NDR:接收完成一次产生一个脉冲ERROR:错误位STATUS:调用FC1、FC2时产生的状态字DPSTATUS:PROFIBUS-DP的状态字节从程序中可以看出,MB20、MB21对应从站输出的第1个字节和第2个字节、MB22,MB23对应从站输入的第1个字节和第2个字节。

编程技巧:使用CPLADDR、SEND等变量控制从站输入输出

在OB1中调用FC1和FC2,具体程序如下:

978-7-111-46009-1-Chapter05-16.jpg

图5-15 选择PROFIBUS DP DP V0 Slaves ET 200M

CALL“DP_SEND”FC1

CPLADDR:=W#16100

SEND:=P#M20.0BYTE16

DONE:=M1.1

ERROR:=M1.2

STATUS:=MW2

CALL“DP_RECV”FC2

CPLADDR:=W#16100

RECV:=P#M22.0BYTE2

NDR:=M1.3

ERROR:=M1.4(www.xing528.com)

STATUS:=MW4

DPSTATUS:=MB6

参数含义如下。

CPLADDR:CP342-5的地址

SEND:发送区,对应从站的输出区

RECV:接收区,对应从站的输入区

DONE:发送完成一次产生一个脉冲

NDR:接收完成一次产生一个脉冲

ERROR:错误

STATUS:调用FC1、FC2时产生的状态字

DPSTATUS:PROFIBUS-DP的状态字节

从程序中可以看出,MB20、MB21对应从站输出的第1个字节和第2个字节、MB22,MB23对应从站输入的第1个字节和第2个字节。连接多个从站时,虚拟地址将向后延续和扩大,调用FC1、FC2时只考虑虚拟地址的长度,而不会考虑各个从站的站号。如果虚拟地址的开始地址不为0,那么调用FC的长度也将会增加,假设虚拟地址的输入区开始为4,长度为10B,那么对应的接收区偏移4B,相应长度为14B,接收区的第5个字节对应从站输入的第1个字节,如接收区为P#M0.0BYTE14,MB0~MB13,偏移4B后,MB4~MB13与从站虚拟输入区一一对应。编完程序下载到CPU中,通信区建立后,PROFIBUS的状态灯将不会闪烁,

使用CP342-5作为主站时,因为本身数据是打包发送,不需要调用SFC14、SFC15,由于CP342-5寻址的方式是通过FC1、FC2的调用访问从站地址,而不是直接访问I/Q区的,所以在ET200M上不能插入智能模块,如FM350-1、FM352等项,所有从站的Ti To时间保持一致。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈