使用200自带的modbus主站库与台达变频器通讯的例子程序段。
使用200自带的modbus主站库与台达变频器通讯的例子程序段。
楼上。网络30就是你要找的事情。你漏眼了。
对这个通信不是很了解。有2个问题
1、为什么要延时通信?
2、为什么要一个参数读完再读下一个?不能直接读吗?就是M25.0/M25.1/M25.2等不要,直接连通,不行吗?
458 453 449 452
排一下序
449 452 453 458
补上被跳过的地址。
449 (450 451)452 453 (454 455 456 457)458
第一,不知道程序的其他地方是什么。
第二,可能要等变频器启动完毕。
奥,忘了!再次请教芳侠:
200与台达变频器通讯,我当时试过奇校验、偶校验都不行。最后采用无校验立马通讯上了。不知道怎么回事。这个问题记得当时也发帖了,但是一直没有解决。给我留下的阴影就是但凡遇到通讯首先考虑无校验试。所以有了6楼的提示。
不知道芳侠对此有何看法?
说实话,做这个程序的时侯也是我对200开始学习的起步阶段。做完那个项目觉得对200有了一个大概的认识,可惜此后却与200绝缘了。有三年没有摸过200了,怪想念那时那刻的时光。
那是一个机器的控制系统,200+变频器+文本。有PID调节,模拟量采集,MODBUS通讯,用224XP编程,差一点容量不够,上手就得到了锻炼,确实机会不易啊!唯一遗憾就是那段时间可能太闷头工作了,落了一个“颈椎病”,现在老是头晕。
围观学习。。。。。。。。。
通讯初期的失败只要不是程序错误,都有返回码的。可以根据返回码尝试等待,等变频器准备完成。延时的做法相当于:我是主,你是副。你一定要准备好了等我来。这对人来说显然是不太礼貌了。做主的应该先到,迎接来宾。来宾没到,打个电话问一下。重复发起通讯请求。200有完善的MODBUS库应该好搞。延时是可以解决很多通讯上不同步的问题。但是这是个消极的做法,只会延长通讯周期。
假如,你现在只需要写速度给定。这样你可以尽管写就是了(最好想从机不需要应答)。但是写的频率太高了。从机没来得及应答又收到新信息了,就会双方都出错。这个时候你插入一个20毫秒的延时。事情是解决了。但是,其实从机只需要9毫秒就应答完成了。这样你的通讯就白白浪费了11毫秒的时间。
做法应该是判断从机的应答,然后就可以立即发送了。时间省很多。