写法
写命令立即读出
写命令后立即读出,在同一时间不能有多个地方写入,因此需要在整个写入后读出过程加锁
项目中会存在多个循环并行执行该VI,轮询PLC指令
在锁内耗时,就是TCP读写的实际耗时为5-8ms,在主VI六个循环里统计的耗时是读取PLC寄存器的整个耗时为10-40ms:
因此可以得出结论,由于锁会让TCP读写的代码块变为同步,因此如果越多地方在同一时操作PLC寄存器,会增加整体耗时。
在项目中轮询信号应该只在一个地方批量把寄存器里的值读取出来。
情况1:以"写命令立即读出"用一个地方批量读取,其他地方间隔写入
下面用fins udp进行测试,在一个地方批量轮询PLC信号
在别的地方,32个循环,4s内随机间隔写入PLC寄存器
轮询的耗时大概为20-30ms,写入的时间也大概为20-30ms
将间隔从4s随机间隔写入改为1ms间隔写入
所有耗时不会受影响,包括读取条码也不会受影响