有些MODBUS组态软件中,包含有“建立连接”命令和“断开连接”命令,是什么意思,如何实现 点击:1515 | 回复:4



霸王猫

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 11回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2007年7月18日
发表于:2007-07-19 10:58:00
楼主
有些MODBUS组态软件中,当对某一个从设备进行组态前有“建立连接”命令,以便获取模块类型。
  请问:“建立连接”如何实现(是否是组态软件发送一个特定的寄存器地址,从设备收到后,返回特定的内容)
  因为我想编写一个MODBUS上位机组态软件,即可以通过RS232单独和某一个从设备进行组态,又可以通过RS485和所有的从设备进行组态。
  因此为想实现三个功能:
    功能1:当按下“扫描设备”按钮后,上位机组态软件依次扫描总线上的从设备。
    功能2:当按下“建立连接”按钮后,上位机组态软件既可以和当前从设备建立连接,之后可以进行通讯。
    功能3:当按下“断开连接”按钮后,上位机组态软件停止和当前从设备的通讯。
  由于初次接触MODBU协议,不知道如何实现扫描设备和建立连接,请指教!



BMC

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 20回
  • 年度积分:0
  • 历史总积分:283
  • 注册:2005年1月13日
发表于:2007-09-12 00:38:00
1楼
不知道你用的是那家的组态软件啊,看来是及有可能是用VB自己开发的吧。一般的,用VB自己开发软件的时候,习惯性的书写二个COMMAND,一个作为建立连接,一个断开连接。,作用主要是进行设备的初始化工作和等待设备工作。你完全可以通过一个TIMER来控制啊。而真正的商业化的组态软件中这些都留给了低层人员。如果想实现MODBUS的上位机通信,首先要了解你书写要控制的设备地址啊。如果有需要可联系我。QQ:350277791。我做过VB控制监视PLC的MODBUS协议通信。

霸王猫

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 11回
  • 年度积分:0
  • 历史总积分:41
  • 注册:2007年7月18日
发表于:2007-09-12 10:58:00
2楼
谢谢你的解释,我准备编写的系统有两种组态方式
 1、用手持编程器组态
 2、用上位机组态
 
 其中手持编程器已经编写完成,已经摒弃了“建立连接”概念,只
有“扫描设备”命令。

zaxife

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 80回
  • 年度积分:0
  • 历史总积分:270
  • 注册:2005年5月25日
发表于:2007-10-02 19:47:00
3楼
建立连接
断开连接
感觉没什么意义。
扫描设备倒是挺管用的。
一般扫描设备我是这样做的:
1、首先建立一个串口属性列表,比如在Combo里添加N个“Com1,9600,n,8,1”等这些属性参数;
2、设置串口的其他参数,接受缓冲区设为6字中断;
3、建立一个100ms的时间控件,如果100ms后没相应就认为断开连接;
4、在时间控件里加上相应的语句,每次循环从机地址自动加1,而且只是读取40001寄存器;
5、在串口中断响应事件里查询CommEvent的状态是否comEvReceive事件就可以了。

远 方

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 401回
  • 年度积分:0
  • 历史总积分:561
  • 注册:2002年1月29日
发表于:2007-10-06 19:05:00
4楼
modbus本来就只是简单的读写协议,并没有连接的概念,什么时候想读了,或是想写了,就发数据去读写就好了,根本不存在什么连接,非要加一个连接在上面,也只是写软件的人觉得这样写用户好理解一些而已罢了

热门招聘
相关主题

官方公众号

智造工程师