昆仑通态 MODUS RTU通信 点击:1501 | 回复:3



guoduo.lh

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 18回
  • 年度积分:0
  • 历史总积分:198
  • 注册:2007年9月19日
发表于:2010-08-12 16:25:31
楼主
谁做过昆仑通态的屏用MODUS RTU 与国产东能伺服直接通信案例(伺服带485通讯口),小弟是初学者,不是太懂,请高手指教一下,具体怎么操作?它要不要驱动程序啊?在此谢谢啊!!



zhouke04

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2008年11月08日
发表于:2010-08-23 22:39:45
1楼

 你现在要做的就是通过伺服的协议做好MCGS的上位程序

  上位程序可以通过MCGS一个专门写驱动软件做  非常简单

  语法格式是仿VB的  

zhouke04

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:74
  • 注册:2008年11月08日
发表于:2010-08-23 22:42:33
2楼

 这是一个我做过的 modbus rtu采集脚本  格式有点不规范(下位机的原因)

但是可以给你参考一下  我删除了一些定义数据对象的内容

!ArrayResize(SendByteArr,6)
SendByteArr[1] = &H01
SendByteArr[2] = &H03
SendByteArr[3] = &H00
SendByteArr[4] = &H6B
nReturn = !SvrByteArrayModbusCRC(SendByteArr,1,4)
SendByteArr[5] = !BitAnd(nReturn,&H000000FF)
nTmp = !BitAnd(nReturn,&H0000FF00)
SendByteArr[6] = !BitRShift(nTmp ,8)

‘发送和接收数据按如下方式:
!ArrayResize(RecByteArr,9)
nReturn = !DevWriteAndReadByteArr(SendByteArr, 6, RecByteArr, 9, 通讯延时)
if nReturn <> 9 then
!SetSingleChannelValueByName("通讯状态", 1)
exit
endif

nIndex = 0
!ArrayResize(DataByteArr,1)
while nIndex < 7
DataByteArr[1] = RecByteArr[nIndex*1+1]
nReturn = !SvrGetByteFromByteArr(DataByteArr,1,开关数据,0)
数值数据 = 开关数据
!SetSingleChannelValueByNum(nIndex+nChlIndex+2,数值数据)
nIndex = nIndex + 1
endwhile
nChlIndex = nChlIndex + nIndex‘设置通讯标志,解析都正确
!SetSingleChannelValueByName("通讯状态", 0)
!SetSingleChannelValueByName("AI01",RecByteArr[1] )
!SetSingleChannelValueByName("AI02",RecByteArr[2] )
!SetSingleChannelValueByName("AI03",RecByteArr[3] )
!SetSingleChannelValueByName("AI04",RecByteArr[4] )
!SetSingleChannelValueByName("AI05",RecByteArr[5] )
!SetSingleChannelValueByName("AI06",RecByteArr[6] )
!SetSingleChannelValueByName("AI07",RecByteArr[7] )

caichu

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 39回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2007年3月09日
发表于:2010-09-30 17:25:38
3楼

没有那么复杂吧,。不是支持MODUS RTU么?

 


热门招聘
相关主题

官方公众号

智造工程师