本人从事轨道机车行业,现在做一个项目!要求5台机车任意可以双机重联。双机重联时,车上有一个主从选择开关,其中一台切到主,另一台切从。譬如我2号车主车,3号车从车。我主车会写控制信号(ID1)给3号车,同时我主车2号还要读从车3号车28个字节的参数,也就是还有2个读指令。其中一个读指令的接收缓冲区位VB900-,另一个为VB950-。问题来了,按编程要求,需要V900.7和V950.7都置1时,才可以接通写指令! 但连接时读指令出现V900.5和V950.5出错,此时V900.7和V950.7接通!我查错误代码提示是0101,违反通信协议!但此时写指令工作正常! 从车也能完美接受主车写的参数!然后我把V900.5和V950.5在程序里去了,此时V900.6和V950.6出现不定时导通,快时2-3S导通一次,慢时半分钟到1分钟!因为我的写指令需要实时传送,所以没办法,我用SM0.0来强制接通写指令,但此时读指令完全不能工作!现在我也纳闷了,不知道这个什么原因!还有因为我有5台机车,任何一台有可能会做主车!既主车我得写与其余4台车的PPI通讯指令,一台从车需要3条(2读1写),4台就需要12条读写了,不能满足最多8条的要求!PPI协议是怎么判断从机有没有连接上呢,譬如我连接的是3号机,那4,5,6号机能不能自动取消读写指令!