huangpeng
级别: 论坛先锋
精华主题: 0
发帖数量: 716 个
工控威望: 1051 点
下载积分: 3272 分
在线时间: 225(小时)
注册时间: 2009-12-07
最后登录: 2022-03-02
查看huangpeng的 主题 / 回贴
楼主  发表于: 2013-01-15 23:04
关于modbus通讯的问题 1 比如一个智能温控器  我现在要用PLC 去读他的温度 还的可以设定他的温度  说说编程思路
                       2  比如一个变频器 我用PLC 去读他的电流 电压 频率 这些数据多要在触摸屏上实时显示,中间我还的随时停止,启动变频器, 如果变频器出现报警  PLC 实时的把 报警代码读过来 请大家说说编程思路   还是老问题上次发贴没有一个人讨论现在在发帖,  
auto_world
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 577 点
下载积分: 664 分
在线时间: 40(小时)
注册时间: 2013-01-13
最后登录: 2019-04-21
查看auto_world的 主题 / 回贴
1楼  发表于: 2013-01-27 12:58
谈谈我的思路,我用的是自由协议,485模块挂十几个变频器,还有其它仪表,要求和你的差不多,读取运行参数,控制设备启停设置运行频率。我把所有的查询指令做一个“循环”:即:
1#站发送第一个读取指令,然后等待变频器回答,收到回答后发送下一个指令,然后等待回答。每个指令发送完均启动定时器,设定时间没有收到回答判定通讯超时,交故障处理函数。依次类推,1#发完发2#,一直把所有变频器均查询一遍返回第一台开始下一个循环。如果,需要起停某台变频器,或者设定参数,则在设定命令下达时,中断当前查询进程,组帧数据后交发送数据区,下一次发送脉冲到来时立马发送。
这样满足了不间断指令的要求(查询),也满足少量指令(设定频率起停设备等)的要求。
所有循环均用标志位或状态字自己控制,不用plc循环指令。(当初开始时用的是plc的循环指令,发现对于通讯plc循环指令并不好用)

波特率尽量设高。

从系统运行来看,还是很好的,挂了十几个变频器,拿着对讲机,变频器上数据变了上位机上也立马变。其中有部分变频器是pid调节,液位,能稳定跟随。

不好意思,献丑了,抛砖引玉,希望高手能指点指点,改进改进。
先道声谢谢。