恭喜,你发布的帖子
发布于 2023-08-02 16:29:44
5楼
你的思路,只能是简化程序,但是并不能简化接收地址区!正常发送是不占用单独的地址区,但是接收必须要有独立的地址区,通讯周期是有可能小于扫描周期的,一个周期可能多次通讯!真想省空间,就用自由口,起码不需要库地址。此外,返回一个浮点数,便准字节不到10个,50组数据500字节足够了!
485主站通讯周期不可能小于扫描周期。1、程序需要下个周期的本指令处才会处理返回的数据,然后释放通讯信道,并置相应done和error;2、一个扫描周期内,不可能有一个以上的msg指令的done位是0。
接收和发送地址区都是可以简化的,比如我最开始提到的目标数据区,配合数据长度和连续站号。
RTU用自由口用点哈哈
你可能没理解我说的数据结构的含义,1K字节地址支持50组数据,每组数据,都可能读或写几K字节数据出来,毕竟一组数据就可以读连续的一百多个从站,每个从站又可以读一二百字节。
如某行为数量3、站号10,长度2、站址40001、目标10,则会依次写站号10、11、12(长度站址相同),写的源数值分别为VW10、VW12、VW14。
如某行数量102、站号10,长度4、站址40001、目标0,则会依次读站号10、11(长度站址相同),并在每次读后返回对应D目标=&VB0、&VB4。
请填写推广理由:
分享
只看
楼主