李侃版主,知道ADAM5510吗? 点击:1159 | 回复:8



桎梏

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 88回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2002年12月14日
发表于:2003-04-18 10:54:00
楼主
李侃版主,你好! 我现在用研华ADAM5510做数据采集 但是不知道怎么用VC编程实现和他的通信(RS232的) ADAM5510是MODBUS协议的 用VC怎么编程啊? 请指教! 谢谢!



李侃

  • 精华:22帖
  • 求助:0帖
  • 帖子:30帖 | 813回
  • 年度积分:0
  • 历史总积分:1015
  • 注册:2002年2月27日
发表于:2003-04-15 11:30:00
1楼
我知道这个产品,但没有用过,抱歉。

桎梏

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 88回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2002年12月14日
发表于:2003-04-15 11:56:00
2楼
没有用过ADAM5510没有关系 你知道VC或者C怎么实现MODUBS通信协议么? 多谢!

Star@ICPDAS

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2003年4月16日
发表于:2003-04-16 16:24:00
3楼
Modbus 是工控界裡使用很久了的一種通訊協定,一般的 SCADA 軟件(iFix, 組態王,Citect,等等)都會支持這個標準。使用方式很簡單,設定設一設就可以使用了。 如果用 VC 來開發軟件和 Modbus 的設備溝通的話,有現成的 OCX 或是 DLL 會比較容易使用。不然,就只好把 Modbus 的規格書找出來,自己慢慢把 Modbus 的命令組合出來了。 可是這樣一來,編程就會花很多時間,不划算。 因為用 VC 來開發,所以要考慮怎麼來開發會比較容易,硬件提供的通訊協定是不是標準的就不是那麼重要。最好硬件廠商有提供這些軟件開發工具。 我們公司有提供,Modbus 和 非 Modbus 的模塊,硬件部分是相同的,下載不同的 Firmware ,就可以使用不同的通訊協定。非 Modbus 通訊協的部分,我們有提供免費的 OCX (含 VB/VC/BCB/Delphi 範例)。 有興趣可上我們公司網站看看 www.icpdas.com

桎梏

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 88回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2002年12月14日
发表于:2003-04-16 17:02:00
4楼
可怜,我的校园网进不去www.icpdas.com 这个网站啊! Star@ICPDAS: 你的意思是不是我们需要买你的Modbus 和 非 Modbus 的模塊才能实现VC和5510的通信啊?

Star@ICPDAS

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2003年4月16日
发表于:2003-04-16 17:33:00
5楼
一般在規劃一個系統時,要同時考慮硬件和軟件的搭配,你可以先選硬件,再選軟件,或者先選軟件,再選硬件,都可以。 以系統開發者的角度來看,我們不是硬件製造廠,所以不必堅持一定要買哪一家的硬件。但是軟件的部分,可能我們熟悉的工具就只有一兩種。那麼,我們在一開始選擇的時候,就要依照我們比較熟悉的軟件去找可以搭配的硬件。 假設你熟 iFix 這個 SCADA 軟件,希望用 SCADA 中的 Modbus 或是 OPC server 的功能來和硬件做整合。那麼你就該找一個有提供以上兩種功能的硬件來搭配。 假設你熟 VB, VC ,那麼有提供 OCX 工具的硬件才是比較好的選擇。 如果你要用 VC 來整合的硬件是走 Modbus 總線,而且硬件廠商有另外提供 OCX 來讓你控制他們的硬件,那就沒問題,不然要自己編程,不是很好搞,要花多一奌時間。 研華的 5000 系列也有使用一般ASCII 字串通訊協定的,應該也是有 OCX 的工具可以用。 我們家的產品和研華的產品是很相像的,我們提供的 OCX 是免費的。 用哪一家的,看價格、品質、服務,久了才會比較知道買那一家的比較好。 連不上台灣的網站? 你可以和我們上海分公司連絡 shanghai@icpdas.com

桎梏

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 88回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2002年12月14日
发表于:2003-04-17 12:01:00
6楼
照你这么说 我现在的ADAM5510该如何与计算机连接采集数据呢? 请指教! 谢谢!

Star@ICPDAS

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2003年4月16日
发表于:2003-04-17 13:22:00
7楼
在 Modbus 的組織網站上,你可以找到更多的資料 www.modbus.org 用搜尋引擎找一下,或許有人提供免費的 DLL 或是 OCX 可以用 如果沒有找到,在 VC 中,你就要自己把 Modbus/RTU 的字串組合起來,丟給 5510,把得到的回應字串拆開,有用的資料取出來即可。 這個協定,只要知道8個基本的Function 就可以了。Modbus/RTU 是要計算 CRC16 的。下面的資料是沒有加上 CRC 的兩個 Byte,命令和回應的最後面,還要再加上兩個byte 的CRC資料。 它的 8 個基本 Function 如下 ============================================================ FC1 Read multiple coils status (0xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=01 Byte 2-3: Reference number Byte 4-5: Bit count [回應] Byte 0: Net ID (Station number) Byte 1: FC=01 Byte 2: Byte count of response (B=(bit count + 7)/8) Byte 3-(B+2):Bit values (least significant is first coil!) FC2 Read multiple input discretes (1xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=02 Byte 2-3: Reference number Byte 4-5: Bit count [回應] Byte 0: Net ID (Station number) Byte 1: FC=02 Byte 2: Byte count of response (B=(bit count + 7)/8) Byte 3-(B+2):Bit values (least significant is first coil!) FC3 Read multiple registers (4xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=03 Byte 2-3: Reference number Byte 4-5: Word count [回應] Byte 0: Net ID (Station number) Byte 1: FC=03 Byte 2: Byte count of response (B=2 x word count) Byte 3-(B+2):Register values FC4 Read multiple input registers (3xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=04 Byte 2-3: Reference number Byte 4-5: Word count [回應] Byte 0: Net ID (Station number) Byte 1: FC=04 Byte 2: Byte count of response (B=2 x word count) Byte 3-(B+2): Register values FC5 Write single coil (0xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=05 Byte 2-3: Reference number Byte 4: =FF to trun ON coil, =00 to trun OFF coil Byte 5: =00 [回應] Byte 0: Net ID (Station number) Byte 1: FC=05 Byte 2-3: Reference number Byte 4: =FF to trun ON coil, =00 to trun OFF coil Byte 5: =00 FC6 Write single register (4xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=06 Byte 2-3: Reference number Byte 4-5: Register value [回應] Byte 0: Net ID (Station number) Byte 1: FC=01 Byte 2-3: Reference number Byte 4-5: Register value FC15 Force multiple coils (0xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=0F (hex) Byte 2-3: Reference number Byte 4-5: Bit count Byte 6: Byte count (B=(bit count + 7)/8) Byte 7-(B+6):Data to be written (least significant is first coil!) [回應] Byte 0: Net ID (Station number) Byte 1: FC=0F (hex) Byte 2-3: Reference number Byte 4-5: Bit count FC16 Write multiple registers (4xxxx) [命令] Byte 0: Net ID (Station number) Byte 1: FC=10 (hex) Byte 2-3: Reference number Byte 4-5: Word count Byte 6: Byte count (B=2 x word count) Byte 7-(B+6): Register values [回應] Byte 0: Net ID (Station number) Byte 1: FC=10 (hex) Byte 2-3: Reference number Byte 4-5: Word count

桎梏

  • 精华:1帖
  • 求助:0帖
  • 帖子:25帖 | 88回
  • 年度积分:0
  • 历史总积分:240
  • 注册:2002年12月14日
发表于:2003-04-18 10:54:00
8楼
www.modbus.org 这个网站我这里进不去! 另外我对VC只是当成一种做工具 所以只熟悉不精通 对于串行通信这块更是接触不久 因此对于Modbus/RTU 看不太懂 具体在VC里怎么实现也无从知道了 请指教! 谢谢!

热门招聘
相关主题

官方公众号

智造工程师