所以有了以下猜想以及实验:
~~~~~~~~~~
想法:
PLC1的 以一定的频率震荡 AND 数据 0/1= 输出数据,不就是可以输出了吗?
下面PLC怎么接受呢?数据0.1怎么开始呢。。
~~~
1,下位机如何判断上位机发送数据?
这样可行?PLC1 输出一个200MS固定ON脉冲,然后,下位机PLC2以输入端>200MS即判断是有信号来了;
~~~~
~~~~~~~~~~~~~~~~~~~~~
说那么多,还不如实际试下,
PLC是汇川的easy301,最低端的,Y0输入接X0输出,物理接线;
1、设置X端滤波2ms<最低了>
2、编写程序,2个定时器来回震荡,测试了以下,Y0输出-X0输入有1.9-2.2MS的延迟,
~~~~~~~~~~~~~~
好了,感觉可行,写程序:
1,计算定时器时间,根据输入频率来计算。
//1hz=1s变化一次,500MSon 500MS off
vd_通讯频率:=REAL_TO_DINT(500.0/ir_通讯频率);
~
2,编写逻辑,用步来弄吧,
测试,发送端4个字,64bit
FB功能块,4个int数组,内部64bit数组,赋值。
用表格拉一下;
第一步:然后就说密钥200MS 一直ON,给下面PLC说准备开始发送数据了;
第二部:关键步,2个定时器震荡 AND 64bit数组 = Q点输出;
~~~~~~~
以上,200MS一直ON,后面就说跟着的数据

第一行是启动发送,,第一行是数据波形,下面是DONE信号,
~~~~~~~~~~~~~~~~~~~
然后就说编写接受解析程序,程序如下:
~~~~~~~
然后就是效果如下了:
~~~~~~
1、接收端如果设置200MS,可能会接收不到,我改成199了,
2、定时器震荡频率不能太快,不然不正常,丢数据,
也没有优化,只是测试了一下能否使用,理论上可以PLC和N个从PLC通讯,参考modbus-rtu,而且可以做CRC校验数据是否OK,
就是PLC输入端子有滤波,速度虽慢,但是能用,一个IO端子能传送这么多数据,对于有些时间要求不高的地方,我感觉也能用。
全文完!2025.11.25





