1.数据的一致性
数据的一致性(Consistency)又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的OB块中断,将会使传送的数据不一致。即被传输的数据一部分来自中断之前,一部分来自中断之后,因此这些数据是不一致(不连续)的。
在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制或电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。需要绝对一致性传送的数据量越大,系统的中断反应时间越长。可以用指令DPWR_DAT和DPWR_DAT来传送要求具有一致性的数据,它们在实际程序中被广泛使用。这两条指令对应于STEP 7 V5.5中库里的SFC14和SFC15。它们适用于中央模块以及DP标准从站和PROFINET IO设备。
随书光盘中的例程“传输一致性数据”的硬件和通信组态与前面的项目“1200作1500的DP从站”基本上相同,其区别在于传输区中的参数“一致性”被组态为“总长度”(见图6-68)。此外还需要在通信双方的OB1中调用“将一致性数据写入DP标准从站”指令DPWR_DAT,将数据“打包”后发送;调用“读取DP标准从站的一致性数据”指令DPRD_DAT,将接收到的数据“解包”后保存到指定的地址区。这样就可以保证DP主站和智能从站之间的一致性数据传送。DP主站用DPWR_DAT发送的输出数据被智能从站用DPRD_DAT读出,并作为其输入数据保存。反之也适用于智能从站发送给主站的数据的处理。
图6-68 DP主站与智能从站通信的传输区
指令DPWR_DAT和DPRD_DAT也可以用于PROFINETIO控制器和IO设备之间的一致性数据传输。
3.生成数据块
双击项目树PLC_1(主站)的“程序块”文件夹中的“添加新块”,生成数据块SendData(DB1)。打开DB1,生成一个有32个Int元素的数组。用复制和修改名称的方法创建内部结构相同的数据块RcvData(DB2)。用复制和粘贴的方法,为PLC_2生成两个相同的数据块。
4.OB1的程序(www.xing528.com)
打开右边的“指令列表”的“扩展指令”窗格的文件夹“\分布式I/O\其他”,将其中的指令DPWR_DAT和DPRD_DAT拖拽到主站的OB1中(见图6-69)。指令DPWR_DAT将DB1中的数据“打包”后发送,指令DPRD_DAT将接收到的数据“解包”后存放到DB2中,图6-70给出了通信双方的信号关系图。
图6-69 主站读写DP从站一致性数据的程序
指令DPWR_DAT、DPRD_DAT的参数LADDR是用于通信的I、Q区的起始地址。参数RECORD的数据类型为VARIANT,它指定的DB1和DB2中的数组的长度应与图6-68“传输区”中组态的参数一致。
DP主站和智能从站的OB1中的用户程序基本上相同。
此外在通信双方的OB1中,用时钟存储器位M0.3的上升沿,每500ms将要发送的第一个字DB1.DBW0加1,运行时它被传送给对方的DB2.DBW0。
图6-70 DP主站与智能从站的数据传输示意图
通信双方OB100的程序分别将DB1中要发送的数据初始化为16#1500和16#1200,将保存接收数据的DB2清零。
通信的实验方法和实验的结果与项目“1200作1500的DP从站”相同。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。