在OB1中调用FC1和FC2,具体程序如下:
图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时间保持一致。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。