時間:2016-09-29 16:15:49來æºï¼šzhaofang
  MODBUSå”è°æ˜¯èŽ«è¿ªåº·å…¬å¸1978å¹´ç™¼æ˜Žç”¨äºŽé›»åæŽ§åˆ¶å™¨é€²è¡ŒæŽ§åˆ¶å’Œé€šä¿¡çš„å”è°ã€‚ä¸åŒå» 商生產的符åˆMODBUSå”è°çš„æŽ§åˆ¶è¨å‚™å¯ä»¥é€£æˆå·¥æ¥ç¶²çµ¡ï¼Œé€²è¡Œé›†ä¸ç›£æŽ§ã€‚MODBUSå”è°é‡‡ç”¨ä¸»å¾žï¼ˆmaster-slave)技術,是一種å•ç”æ–¹å¼çš„通信å”è°ã€‚æ¯æ¬¡é€šä¿¡å‡ç”±ä¸»æ©Ÿç™¼å‡ºæ•¸æ“šè«‹æ±‚ä¿¡æ¯ï¼Œå¾žæ©ŸæŽ¥æ”¶åˆ°æ£ç¢ºæ¶ˆæ¯åŽå°±å¯ä»¥ç™¼é€æ•¸æ“šåˆ°ä¸»æ©Ÿä»¥éŸ¿æ‡‰è«‹æ±‚;主機也å¯ä»¥ç›´æŽ¥ç™¼ä¿¡æ¯ä¿®æ”¹å¾žæ©Ÿçš„æ•¸æ“šï¼Œå¯¦ç¾é›™å‘讀寫。  在具體介紹Modbuså”è°ä¹‹å‰ï¼Œå…ˆå‘大家簡單介紹一下è¨å‚™ä¸çš„æ•¸æ“šå¦‚何å˜å„²ã€‚我們常把è¨å‚™ä¸å˜å„²æ•¸æ“šçš„單元稱為寄å˜å™¨ï¼ŒæŒ‰ç…§å˜å„²æ•¸æ“šçš„類型å¯ä»¥åˆ†ç‚ºä½å¯„å˜å™¨å’Œ16ä½å¯„å˜å™¨å…©ç¨®ï¼Œå¦‚圖1所示:
圖1
  ä½å¯„å˜å™¨çš„容é‡ç‚º1ä½ï¼Œ16ä½å¯„å˜å™¨çš„容é‡ç‚º16ä½ï¼Œæ¯ä¸€å€‹å˜å„²æ•¸æ“šçš„寄å˜å™¨éƒ½æœ‰ä¸€å€‹å°æ‡‰çš„寄å˜å™¨åœ°å€ï¼ŒModbuså”è°å°±æ˜¯æ ¹æ“šå¯„å˜å™¨åœ°å€ä¾†æŸ¥è©¢æ•¸æ“šæˆ–è€…è¨ç½®æ•¸æ“šåˆ°ç‰¹å®šçš„寄å˜å™¨ä¸ã€‚如圖1所示,ä½å¯„å˜å™¨ç”¨ä¾†å˜å„²é›¢æ•£å€¼ï¼Œå³é–‹é—œé‡ï¼›16ä½å¯„å˜å™¨ç”¨ä¾†å˜å„²16使•´æ•¸ï¼Œ16ä½å¯„å˜å™¨é‡Œçš„æ•¸æ“šæ—¢å¯ä»¥ç¨ç«‹è¡¨ç¤ºä¸€å€‹16使•´æ•¸ï¼Œä¹Ÿå¯ä»¥ç”¨å…©å€‹é€£çºŒçš„16ä½å¯„å˜å™¨è¡¨ç¤º32使•´åž‹æˆ–實型的數據,低地å€å˜æ”¾ä½Ž16ä½ï¼Œé«˜åœ°å€å˜æ”¾é«˜16ä½ã€‚
  接下來詳細介紹Modbuså”è°ã€‚Modbuså”è°åˆ†ç‚ºä¸‰ç¨®é€šä¿¡æ–¹å¼ï¼šModbus RTUã€Modbus ASCII以åŠModbus TCP。
  首先,Modbus TCPçš„é€šä¿¡æ ¼å¼å’ŒModbus RTUéžå¸¸ç›¸ä¼¼ï¼Œå”¯ä¸€çš„å·®åˆ¥åªæ˜¯Modbus RTU最åŽå¸¶å…©å€‹å—節的CRCæ ¡é©—ï¼Œè€ŒModbus TCP沒有。
  其次,Modbus ASCIIçš„é€šä¿¡æ ¼å¼èˆ‡Modbus RTU其實“神åˆè²Œé›¢”,就是把Modbus RTUçš„æ¯ä¸€å€‹å—節(例如:27H)高四ä½ï¼ˆ2)和低四ä½ï¼ˆ7)拆分為兩個å—節,并以ASCII碼的方å¼è¡¨ç¾å‡ºä¾†ï¼ˆ32 37),å†çµ¦å‘½ä»¤å¹€åˆ†åˆ¥åŠ ä¸Šèµ·å§‹ç¬¦å’ŒçµæŸç¬¦ä¾¿å¯ä»¥ï¼Œç•¶ç„¶Modbus RTUå’ŒModbus ASCIIçš„æ ¡é©—çš„æ–¹å¼ä¸åŒï¼Œé€™é‡Œæš«ä¸è©³è¿°ï¼Œæ‰€ä»¥åŒä¸€æ¢å‘½ä»¤ç”¨Modbus RTUæ–¹å¼å’ŒModbus ASCIIæ–¹å¼è¡¨ç¾å‡ºä¾†ï¼Œé›–然在命令長度的上有很大的å€åˆ¥ï¼Œä½†å…¶å¯¦éš›è¡¨é”çš„æ„æ€å»æ˜¯ä¸€æ¨£ã€‚
  下é¢å°±ä»¥Modbus RTU為例,詳細表述世紀星組態軟件是如何讀å–è¨å‚™ä¸çš„æ•¸æ“šï¼Œå¹¶ä¸”將數據è¨ç½®åˆ°è¨å‚™ä¸ã€‚
1.讀數據:
ã€€ã€€ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤ï¼š02 03 00 05 00 02 D4 39
  è¨å‚™è¿”回的數據:02 03 04 20 08 20 10 49 3D
ã€€ã€€ä¹‹å‰æ²’有接觸éŽModbus RTUå”è°çš„æœ‹å‹å€‘看了上é¢åˆ—å‡ºçš„æ•¸æ“šï¼Œæœƒç¨æœ‰ä¸è§£ï¼Œé€™é‡Œç‚ºå¤§å®¶è©³ç´°è§£é‡‹ä¸€ä¸‹ã€‚
  1)發é€çš„命令:
  第一個å—節:02,它表示的是è¨å‚™åœ°å€ã€‚在åŒä¸€æ¢485總線上,å¯èƒ½æœƒæŽ¥å¤šå€‹è¨å‚™ï¼Œè€Œé€™å€‹è¨å‚™åœ°å€å°±ç›¸ç•¶äºŽæ¯ä¸€å€‹è¨å‚™çš„æ¨™è˜ï¼Œç¹¼è€Œæ±ºå®šæ¯ä¸€å€‹è¨å‚™çš„è¨å‚™åœ°å€åœ¨åŒä¸€æ¢ç¸½ç·šä¸Šå¿…é ˆæ˜¯å”¯ä¸€ã€‚
  第二個å—節:03,這個å—節是功能碼å—節,作用就是告訴è¨å‚™ï¼Œä¸Šä½æ©Ÿæƒ³è¦è®€å–的是什么樣的數據,世紀星組態軟件支æŒçš„讀數據的功能碼有:01Hã€02Hã€03Hå’Œ04H,具體å«ç¾©è«‹åƒç…§è¡¨1。
表1
  第三第四個å—節:00 05,表示的是一個寄å˜å™¨åœ°å€ï¼Œå®ƒå‘Šè¨´è¨å‚™ä¸Šä½æ©Ÿæƒ³è¦è®€å–的數據,是從寄å˜å™¨åœ°å€5開始的一個或多個寄å˜å™¨é‡Œçš„æ•¸æ“šã€‚
  第五第å…個å—節:00 02,表示的是讀å–寄å˜å™¨çš„個數,çµåˆç¬¬ä¸‰ç¬¬å››å€‹å—節,就是告訴è¨å‚™ï¼Œä¸Šä½æ©Ÿæƒ³è¦è®€å–的數據是從寄å˜å™¨åœ°å€5é–‹å§‹çš„2個寄å˜å™¨é‡Œçš„æ•¸æ“šï¼Œå³å¯„å˜å™¨åœ°å€ç‚º5å’Œ6的寄å˜å™¨é‡Œçš„æ•¸æ“šã€‚
  第七第八個å—節:D4 39,是CRCæ ¡é©—ç¢¼ï¼Œä¸è«–是讀數據還是è¨ç½®æ•¸æ“šï¼Œç™¼é€å’Œè¿”回命令里的最åŽå…©å€‹å—節都是CRCæ ¡é©—ç¢¼ï¼Œå…·é«”çš„è¨ˆç®—æ–¹æ³•é€™é‡Œæš«ä¸è©³è¿°ã€‚
  2)返回的數據:
  第一個å—節:02,表示è¨å‚™åœ°å€ï¼Œä½œç”¨åŒç™¼é€å‘½ä»¤ä¸ç¬¬ä¸€å€‹å—節02。
  第二個å—節:03,表示功能碼,作用åŒç™¼é€å‘½ä»¤ä¸ç¬¬äºŒå€‹å—節03。
  第三個å—節:04,表示返回有效數據的å—節個數,這里è¦èªªæ˜Žä¸€ä¸‹çš„æ˜¯å°äºŽä½å¯„å˜å™¨ï¼ˆåŒ…括表1ä¸çš„線圈狀態和輸入狀態),æ¯ä¸€å€‹å¯„å˜å™¨çš„容é‡åªæœ‰ä¸€ä½ï¼Œå¦‚æžœä¸Šä½æ©Ÿç™¼é€çš„命令ä¸è¦æ±‚連續讀8個ä½å¯„å˜å™¨ï¼ˆå³ç™¼é€å‘½ä»¤ä¸çš„第五第å…個å—節為00 08),è¨å‚™è¿”回的數據ä¸çš„第三個å—節åªç‚º1ï¼Œå› ç‚ºä¸€å€‹å—節的容é‡ç‚º8ä½ï¼Œå¯ä»¥è¡¨ç¤º8個ä½å¯„å˜å™¨çš„狀態。而å°äºŽè¡¨1ä¸çš„ä¿æŒå¯„å˜å™¨å’Œè¼¸å…¥å¯„å˜å™¨ï¼Œæ¯ä¸€å€‹å¯„å˜å™¨çš„容é‡ç‚º16ä½ï¼Œå®ƒå¯ä»¥è¡¨ç¤ºä¸€å€‹16ä½çš„æ•´åž‹æ•¸æ“šï¼Œæˆ–者一個32使•´åž‹æˆ–實型數據的高16使ˆ–低16ä½ã€‚所以è¨å‚™å›žå‚³ä¸€å€‹ä¿æŒå¯„å˜å™¨æˆ–輸入寄å˜å™¨çš„æ•¸æ“šéœ€è¦å…©å€‹å—節,這就解釋了發é€å‘½ä»¤ä¸è¦æ±‚讀å–2å€‹ä¿æŒå¯„å˜å™¨çš„æ•¸æ“šï¼Œè¨å‚™è¿”回的有效數據為4個å—節。
  緊跟在第三個å—節åŽé¢çš„4個å—節的數據便是è¨å‚™è¿”回的有效數據,çµåˆç™¼é€çš„命令,我們å¯çŸ¥åœ¨å¯„å˜å™¨åœ°å€ç‚º0005H的寄å˜å™¨ä¸å˜å„²çš„æ•¸æ“šç‚º2008H(å進制為8200),寄å˜å™¨åœ°å€ç‚º0006H的寄å˜å™¨ä¸å˜å„²çš„æ•¸æ“šç‚º2010H(å進制為8208)。
  第八第ä¹å€‹å—節:49 3D,是CRCæ ¡é©—ç¢¼ã€‚
2. 寫數據
  1)寫ä½å¯„å˜å™¨
ã€€ã€€ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤ï¼š02 05 00 05 FF 00 9C 08
  è¨å‚™è¿”回的數據:02 05 00 05 FF 00 9C 08
  第一個å—節:02,表示è¨å‚™åœ°å€ï¼Œé€™é‡Œå°±ä¸åšé‡å¾©ä»‹ç´¹ã€‚
  第二個å—節:05,為功能碼å—節,05號功能碼的作用為強置一個ä½å¯„å˜å™¨çš„0/1(ON/OFF)狀態。
  第三第四個å—節:0005ï¼Œè¡¨ç¤ºçš„æ˜¯ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤æ‰€å¼·ç½®çš„寄å˜å™¨çš„地å€ã€‚
  第五第å…個å—節:FF00Hï¼Œè¡¨ç¤ºä¸Šä½æ©Ÿè¦å°‡åœ°å€ç‚º5çš„ä½å¯„å˜å™¨å¼·ç½®ç‚º1,當強置為0時,第五第å…個å—節為:00 00。
  第七第八個å—節:9C 08,為CRCæ ¡é©—å—節。
  è¨å‚™æ£å¸¸è¿”å›žæ™‚ï¼Œè¿”å›žçš„æ•¸æ“šèˆ‡ä¸Šä½æ©Ÿç™¼é€çš„命令是完全一致的。
  2)寫單個16ä½å¯„å˜å™¨
ã€€ã€€ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤ï¼š02 06 00 05 00 12 19 F5
  è¨å‚™è¿”回的數據:02 06 00 05 00 12 19 F5
  第一個å—節:02,表示è¨å‚™åœ°å€ã€‚
  第二個å—節:06,為功能碼å—節,06號功能碼的作用為é 置單個16ä½å¯„å˜å™¨ã€‚
  第三第四個å—節:0005ï¼Œè¡¨ç¤ºçš„æ˜¯ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤æ‰€é 置的寄å˜å™¨çš„地å€ã€‚
  第五第å…個å—節:0012Hï¼Œè¡¨ç¤ºä¸Šä½æ©Ÿè¦å°‡åœ°å€ç‚º5çš„16ä½å¯„å˜å™¨é 置為12H(å進制為18)。
  第七第八個å—節:19 F5,為CRCæ ¡é©—å—節。
  è¨å‚™æ£å¸¸è¿”å›žæ™‚ï¼Œè¿”å›žçš„æ•¸æ“šèˆ‡ä¸Šä½æ©Ÿç™¼é€çš„命令完全一致。
  3)寫多個16ä½å¯„å˜å™¨
ã€€ã€€ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤ï¼š02 10 00 06 00 02 04 01 02 00 00 DC FD
  è¨å‚™è¿”回的數據:02 10 00 06 00 04 21 F8
  發é€çš„命令:
  第一個å—節:02,表示è¨å‚™åœ°å€ã€‚
  第二個å—節:10H(å進制為16),為功能碼å—節,10H號功能碼的作用為é 置多個16ä½å¯„å˜å™¨ã€‚
  第三第四個å—節:0006ï¼Œè¡¨ç¤ºçš„æ˜¯ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤æ‰€é 置的多個寄å˜å™¨çš„起始地å€ç‚º0006H。
  第五第å…個å—節:0002ï¼Œè¡¨ç¤ºä¸Šä½æ©Ÿè¦é€£çºŒé 置連續的兩個寄å˜å™¨ã€‚
  第七個å—節:04,表示åŽé¢è·Ÿè‘—çš„4個å—節數據是è¦é 置到指定寄å˜å™¨ä¸åŽ»çš„ã€‚
  緊跟在第七個å—節åŽçš„四個å—節便是è¦é 置到指定寄å˜å™¨ä¸çš„æ•¸æ“šï¼Œçµåˆå‰é¢çš„ä¿¡æ¯ï¼Œæˆ‘們知é“這æ¢å‘½ä»¤æ˜¯è¦å°‡0102H(å進制為258)é 置到地å€ç‚º6的寄å˜å™¨ä¸ï¼Œ0000Hé 置到地å€ç‚º7的寄å˜å™¨ä¸ã€‚
  最åŽå…©å€‹å—節:9C08,為CRCæ ¡é©—å—節。
  返回的數據:
  第一個å—節:02,表示è¨å‚™åœ°å€ã€‚
  第二個å—節:10H(å進制為16),為功能碼å—節。
  第三第四個å—節:0006ï¼Œè¡¨ç¤ºçš„æ˜¯ä¸Šä½æ©Ÿç™¼é€å‘½ä»¤æ‰€é 置的多個寄å˜å™¨çš„起始地å€ä½0006H。
  第五第å…個å—節:0004ï¼Œè¡¨ç¤ºä¸Šä½æ©Ÿé 置了連續的兩個寄å˜å™¨å³4個å—節的有效數據。
  第七第八個å—節:19 F5,為CRCæ ¡é©—å—節。
  無論是強制ä½å¯„å˜å™¨é‚„是é ç½®16ä½å¯„å˜å™¨ï¼Œè¨å‚™è¿”å›žæ•¸æ“šçš„ä½œç”¨åƒ…åƒ…æ˜¯å‘Šè¨´ä¸Šä½æ©Ÿæ•¸æ“šå·²ç¶“æˆåŠŸè¨ç½®åˆ°è¨å‚™å¯„å˜å™¨ä¸äº†ã€‚
  關于Modbus RTUå”è°æ ¼å¼çš„æš«æ™‚ä»‹ç´¹åˆ°é€™é‡Œï¼Œå¸Œæœ›é€™ç¯‡æ–‡ç« å¯ä»¥è®“å°é€šä¿¡å”è°ä¸äº†è§£ç”šè‡³æ²’有接觸éŽModbuså”è°çš„æœ‹å‹å€‘å°Modbusæœ‰åˆæ¥çš„èªè˜ã€‚在下一期的《世紀星月刊》ä¸ï¼Œæˆ‘會繼續介紹世紀星組態軟件å°Modbus å”è°çš„æ”¯æŒæƒ…æ³ï¼Œå¸Œæœ›æœƒå°ä¸–紀星的廣大用戶有所幫助。
標簽:
上一篇:使用NI LabVIEW軟件和視覺硬...
下一篇:微能WIN-V63çŸ¢é‡æŽ§åˆ¶è®Šé »å™¨åœ¨...
ä¸åœ‹å‚³å‹•網版權與å…è²¬è²æ˜Žï¼šå‡¡æœ¬ç¶²æ³¨æ˜Ž[來æºï¼šä¸åœ‹å‚³å‹•ç¶²]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Šå‡ç‚ºä¸åœ‹å‚³å‹•ç¶²(www.hysjfh.com)ç¨å®¶æ‰€æœ‰ã€‚如需轉載請與0755-82949061è¯ç³»ã€‚任何媒體ã€ç¶²ç«™æˆ–å€‹äººè½‰è¼‰ä½¿ç”¨æ™‚é ˆæ³¨æ˜Žä¾†æºâ€œä¸åœ‹å‚³å‹•ç¶²â€ï¼Œé•å者本網將追究其法律責任。
本網轉載并注明其他來æºçš„稿件,å‡ä¾†è‡ªäº’è¯ç¶²æˆ–æ¥å…§æŠ•稿人士,版權屬于原版權人。轉載請ä¿ç•™ç¨¿ä»¶ä¾†æºåŠä½œè€…ï¼Œç¦æ¢æ“…自篡改,é•è€…è‡ªè² ç‰ˆæ¬Šæ³•å¾‹è²¬ä»»ã€‚
相關資訊