从你的数据来看,应该PLC是从机,然后仪表不停的发数据给你,那你就要写自由通讯了。
这种东西,如果是很多卡的话,还是用表的方式来做吧。然后根据返回的卡编号作为指针偏移量去访问对应的表,把表中的计数值设定为初值。然后每个周期都去维护所有表的计数-1,同时判断是否计数值为0,如果为0则认为该卡已经离开了。
按照你的等级,自由通讯、指针寻址、表维护、应该不难吧?
就像很简单的你用PLC作为
modbus主站时,不可能每个从站都要另外写一个子程序的。最多也就是根据从站地址便宜到该从站所分配的内存,然后把接收到的帧放过去。最后从站的数据是在主程序里面定期维护而已。增减从站只是分配的内存多一些而已,并不会因为增减从站就要去增减代码。
其实,如果你学过C语言的话,利用结构指针数组这种思想来做,是很简单的。