用库的话可以的。因为
modbus的控制库可以有节点控制是否脱离
modbus返回自由口状态。你可以在适当的时候脱离主站库的驱动切换到从站库的驱动。从而实现主从的切换。
但是……
相对这个plc通讯的外部设备是否能跟随你一同切换呢?
例如一个外部一个东西一直作为主站向你发信息,你本来作为从站响应,但是突然你不响应了,而且反过来发起询问了。那么外部的这个主站那知道你干什么了。线上同时出现了两个主站冲突了。就等于老师在讲课的时候突然有个学生自己唱起歌来。
反过来本来作为主站的plc变成从站了,线上静悄悄的没有一个设备发起通讯。
两种情况都是不工作的状态。
当前你就需要自己编一个协议使得各个通讯参与者之间确立主从关系。例如,上课,老师发问,同学举手(不举手的同学拒绝接受主站权),老师关注到了举手,同学等待邀请,老师发出回答邀请,同学站立回答或者提问(这里开始,同学已经作为主机身份),老师接纳同学意见(老师作为从机接收意见)其他同学也收到相同的意见,同学发言完毕坐下(同学交还主机身份给老师),老师重新关注下一位举手的同学,同学继续等待邀请,老师宣布现在讲新课忽略所有举手的同学(当前主站不允许传递主站权)……。这一点点微细的交流,都是主从切换关键。只有这样,才不会发生同时有两个人在主动发言。