恭喜,你发布的帖子
发布于 2022-12-06 16:25:33
10楼
PUT/GET通讯一般最小间隔是50ms,延时是存在的.对数据交互出现问题,一般的处理办法:
(1):规划好PUT/GET读写区,尽量做到仅在一处交互数据(类似Zane版说的对于每个变量只写一次)
(2):对非常重要的有时序耦合紧凑的若干个布尔量压缩在同一个字节内(字节类比原子,布尔类比电子)
(3):还有个简单的不一定合适的仅供参考的做法:
第一:比如A设备PUT给B设备VB0-VB65(A/B组态的数据区域一致),开头VD0,结尾VD62是毫秒级Bitime时钟数数值,VD0和VD62在A设备的同处赋时钟值;
第二:B程序里:
if(PUT/GET心跳时间OK)
{
if((VD0==VD62)&(VD0!=VD100)&(VD62!=VD111))
{
VD100=VD0;
VD111=VD62;
//其余代码
}
}
第(3)点对上位机和机械臂ModbusTCP或者TCP通讯有一定参考作用
if((机械臂出发点[i]!=机械臂上个出发点)&(机械臂到达点[i]!=机械臂上个到达点)&(机械臂开始走==1))
{
机械臂上个出发点=机械臂出发点[i];
机械臂上个到达点=机械臂到达点[i];
//执行其余代码,MOVEL/C等指令;
}
其中机械臂出发点[i];机械臂到达点[i];机械臂开始走都是上位机TCP发给机械臂的变量,其余是机械臂内部静态变量.
请填写推广理由:
分享
只看
楼主