modbustcpͨѶÐÒéÊÇÒÔÌ«ÍøÐÒéÂð£¿
ModBusÊÇÒ»ÖÖÇëÇó-Ó¦´ðÐÒ飬Ëü²ÉÓÃÁËÒ»¸öÖ÷´ÓʽµÄʵÏÖ¡£ÔÚÖ÷ÆÍ¹ØÏµÖУ¬½»Á÷ͨ³£ÊÇÁ½Á½½øÐеġ£×°ÖñØÐ뿪ʼһ¸öÇëÇ󣬲¢ÇҵȴýÒ»¸öÏìÓ¦£¬¿ªÊ¼×°Öã¨Ö÷ҪװÖ㩸ºÔðÿһ¸öÏ໥×÷ÓõĿªÊ¼¡£Ò»°ãÇé¿öÏ£¬Ö÷»úÊÇ HMI (Human Interface, HMI£©»òÕß SCADA (Control and Data Digital Automatic Control, SCADA)£¬´Ó»úÊÇ PLC (Programmable Logic Control, PLC£©»òÕß PAC (Programmable Automatic Control, PAC£©¡£ÔÚ²»Í¬µÄÐÒé²ãÖУ¬ÒªÇóÓëÓ¦´ðµÄÄÚÈÝÓë´«ËÍÐÅÏ¢µÄÍøÂ·²ã¡£
ModBusͨѶж¨ÊÇÒ»ÖÖ°üº¬ RTU, ASCII, TCPµÄÓ¦Óò㱨ÎÄ´«ËÍж¨¡£±ê׼ģ¿é×ÜÏßÐÒéµÄÎïÀí²ã½Ó¿ÚÓÐRS232,RS485, EthernetµÈ¡£
Ä£¿é»¯µÄ RTUºÍ ASCIIÄ£¿é¶¼²ÉÓÃÁË´®¿Ú·½Ê½¡£ÆäÖУ¬ÒÔ¶þ½øÖÆÎª´ú±íµÄ ModbusRTU¾ßÓÐÊý¾Ý½á¹¹½ô´Õ¡¢Í¨Ñ¶¸ßЧµÈÓŵ㣬Òò¶øµÃµ½Á˹㷺µÄÓ¦Óá£ModbusASCIIͨ¹ý ASCII´úÂë½øÐд«ËÍ£¬²¢ÇÒÔÚ×ֽڵĿªÍ·ºÍ½áβ¶¼ÓÐÌØ¶¨µÄ×Ö·û¡£ËüµÄ´«ÊäЧÂÊ±È ModbusRTUÒªµÍµÃ¶à¡£ModBusTCPÊÇÒ»ÖÖ ModBusͨѶ£¬ËüÔÚ¹¤ÒµÒÔÌ«ÍøÂ·É쵀 TCP/IPÍøÂ·ÉÏ´«ËÍ¡£ModBus×ÊÁÏ´«ËÍΪ¿Í»§»úÓëÒÔÌ«Íø TCP/IPÍøÂ·ÏàÁ¬µÄËÅ·þÆ÷ÌṩÁËÒ»ÖÖ¼´Ê±Í¨Ñ¶¡£
2.ModbusÐÒé²ã
ÔÚÔ·½°¸ÖУ¬ MODBUSÊÇÒ»ÖÖÒÔ´®¿ÚΪ»ù´¡µÄµ¥Ò»Í¨ÐÅÐÒ飬ÎÞ·¨½øÐзֲ㡣Ôڴ˹ý³ÌÖУ¬ÎªÁ˸ı䴮ÐÐͨѶËù²ÉÓõı¨Îĸñʽ£¬ÒÔ¼°Ö§³Ö TCP/IPÓë UDP (User Datapacitation Protocol, UDP£©µÈ¶àÖÖÓ¦Óá£ÕâʹµÃºËÐÄÐÒ飨digital protocol data, PDU£©ÓëÍøÂç²ã£¨application data unit, ADU£©Ïà·ÖÀë¡£
ModBus ÐÒéÊÇÒ»ÖÖÓë»ù´¡Í¨Ñ¶²ãÎ޹صļòÒ×ÐÒéÊý¾Ýµ¥Î»£¨PDU).ͨ¹ý¾ßÌåµÄ×ÜÏß»òÕßÍøÂçµÄ ModBusÐÒéͼ¿ÉÒÔ½«Ò»Ð©¶îÍâµÄÁìÓòÒýÈëµ½Ó¦ÓÃÊý¾Ýµ¥Î»£¨Application Data Unit, ADU£©ÉÏ¡£
ÐÒéÊý¾Ýµ¥Ôª£¨PDU£©
PDUºÍËüµÄ´¦Àí³ÌÐò×é³ÉÁË ModBusÓ¦ÓóÌÐòÐÒéµÄºËÐÄ.ÔÚ´Ë»ù´¡ÉÏ£¬¸ø³öÁËÐÒéÊý¾Ýµ¥ÔªµÄ¸ñʽ£¬ÐÒéÖÐËùÓõ½µÄÊý¾Ý¸ÅÄÈçºÎʹÓú¯ÊýÂëÀ´´æÈ¡Êý¾Ý£¬²¢¸ø³öÁ˺¯ÊýÂëµÄʵÏÖ·½·¨ºÍÔ¼ÊøÌõ¼þ¡£modbusPDU¸ñʽÊÇÖ¸º¯Êý±àÂ룬ºóÃæÊÇÒ»Ì×ÏàÓ¦µÄÊý¾Ý¡£×ÊÁϵijߴ缰ÄÚÈÝÊÇÒÔº¯ÊýÂëÀ´¹æ¶¨µÄ£¬²¢ÇÒËùÓÐµÄ PDU £¨º¯ÊýÂë¼°×ÊÁÏ£©µÄ³ß´ç²»µÃ´óÓÚ253¸ö×Ö½Ú¡£Ã¿Ò»ÖÖº¯Êý±àÂë¶¼ÓÐÒ»ÖÖ¾ßÌåµÄ¶¯×÷£¬ÕâЩ¶¯×÷¿ÉÒÔͨ¹ý´Ó»úÀ´Áé»îµØÖ´ÐС£
Ò»°ã¶øÑÔ£¬ MODBUSËùÄÜ´æÈ¡µÄ×ÊÁÏ´¢´æÔÚËÄÖÖ×ÊÁÏ¿âÖеÄÒ»ÖÖ£ºÏßȦ״̬£¬·ÖÁ¢ÊäÈ룬±£³Ö¼Ä´æÆ÷£¬ÒÔ¼°ÊäÈë¼Ä´æÆ÷¡£ÕâЩ×ÊÁÏ¿â»á¶¨ÒåËù°üº¬Ö®×ÊÁϵÄÐͱðÓë´æÈ¡¡£ÓÉÓÚ¸Ã×°ÖÃÔÚ±¾»ú´æ·Å£¬Òò´Ë¿ÉÒÔ´Ó¸Ã×°ÖÃÖ±½Ó´æÈ¡¸Ã×ÊÁÏ¡£È¡¶ø´úÖ®µÄÊÇ£¬ ModBusµÄËÞÖ÷ÐèҪʹÓò»Í¬µÄº¯Êý´úÂëÀ´´æÈ¡Õâ¸öÊý¾Ý¡£Ã¿Ò»¸öÄ£¿éµÄ±íÏÖÈç±í1Ëùʾ¡£
Ó¦ÓÃÊý¾Ýµ¥Ôª£¨ADU£©
Ðí¶àÍøÂçÐÒé¶¼ÊÇ¿ÉÓõ쬶ø²»Ö»ÊÇ PDUÄÚºËËù¶¨ÒåµÄÄÇЩ¹¦ÄÜ¡£×î³£ÓõÄͨѶж¨ÊÇ´®¿ÚͨѶ¡¢ TCP/IPͨѶж¨£¬µ«ÊÇÆäËüͨѶж¨£¬ÀýÈç UDP£¬Ò²¿ÉÒÔ±»Ê¹Óá£ÎªÁËÔÚ MODBUSµÄ¸÷¸ö²ã´Î¼ä½øÐÐ×ÊÁϵĴ«ËÍ£¬ MODBUSº¬ÓÐÒ»Ì×ÊʺÏÃ¿Ò»ÍøÂ·Ð¶¨µÄ ADU¡£
AduÓÐÈý¸ö±ê×¼¸ñʽ£¬¼´ TCP£¬Ô¶³ÌÖն˵¥Ôª£¨Telecommunicational-terminal unit, RTU£©ºÍ ASCII¡£´«Í³µÄ´®ÐÐÏßÒ»°ã²ÉÓà RTU¡¢ ASCIIAduµÈ£¬´«Í³µÄ TCP/IP¡¢ UDP/IPµÈ¶¼²ÉÓÃÁË TCP¡£
3.ModbusÊý¾ÝÖ¡½á¹¹
3.1ModbusRTUÊý¾ÝÖ¡½á¹¹
ModbusRTUÐÒéÔÚÖ÷»ú²éѯÖзÅÖôÓ×°Ö㨻ò¹ã²¥£©µØÖ·£¬¶¨ÒåËùÇëÇóµÄ¶¯×÷µÄº¯Êý´úÂ룬´ý·¢Ë͵ÄÊý¾Ý£¬ÒÔ¼° CRCÈ·ÈÏ£¬´Ó¶ø½¨Á¢Ò»¸ö²éѯÐÅÏ¢£»´Ó»úµÄÓ¦´ðÐÅÏ¢°üͬÑùʹÓÃÁË ModbusRTUµÄÐÅÏ¢½á¹¹£¬ÆäÖаüº¬ÁË´Ó»úµÄµØÖ·£¬ÇëÇó²Ù×÷µÄº¯Êý´úÂ룬´ý·¢Ë͵ÄÊý¾Ý£¬ÒÔ¼° CRC¼ìÑ飻Èç¹ûÊÕµ½Ñ¶Ï¢Ê±³öÏÖÁËÒ»¸ö´íÎ󣬻òÊÇ´Ó»ú²»ÄÜÍê³ÉÒªÇóµÄ¶¯×÷£¬ÄÇô´Ó»ú¾Í»á·¢³öÒ»¸öÀýÍâѶϢÀ´»ØÓ¦¡£ModbusRTUµÄÊý¾Ý¿ò¼ÜÊÇÕâÑùµÄ£º
modbus RTUͨѶÐÒé
ModbusRTUÒòÆä¶þ½øÖƱí´ï·½Ê½¡¢Êý¾Ý½á¹¹½ô´Õ¡¢Í¨Ñ¶Ð§Âʸ߶ø±»¹ã·º²ÉÓá£
ͨѶ´«ËÍģʽ£º
ͨѶ´«Ëͱ»·Ö³ÉÁ½²¿·Ö£¬·Ö±ðÊǵ¥¶ÀµÄ±¨Í·ºÍÒѱàÂëµÄ×ÊÁÏ´«ËÍ¡£»¹·ûºÏ ModbusRTUͨѶÐÒéµÄÏÂÁÐͨѶ´«ËÍģʽ¶¨Ò壺¶þλԪ×é¼ì´íÂë¡£
ͨѶ¹æÔ¼
½«Í¨Ñ¶Ö¸Áî·¢Ë͸øÒDZíºó£¬Óë¶ÔÓ¦µÄͨѶָÁîÒ»ÖµÄÒDZí½ÓÊÜͨѶָÁɾ³ýͨѶָÁ¶Á³ö×ÊѶ£¬ÈôÎÞ²î´í£¬ÒDZíÍê³É¹¤×÷£»È»ºóÏò·¢ËÍÕß·µ»ØÖ´Ðнá¹û¡£ÆäÖаüº¬Á˵ØÖ·Â룬²Ù×÷º¯ÊýÂ룬²Ù×÷ºóµÄ½á¹û×ÊÁÏ£¬ÒÔ¼°´íÎóУÑéÂë¡£Èç¹û³ö´í£¬¾ÍûÓÐÐÅÏ¢±»·¢ËÍ¡£
λַ´úÂë
λַ´úÂëÊÇѶϢ¿ò¼Ü´Ó0ÖÁ255µÄµÚÒ¼¸ö×Ö½Ú£¨8±ÈÌØ£©¡£Õâ¸öλԪ×é´ú±íÁËʹÓÃÕßÉ趨λַµÄ´Ó»ú£¬»á´ÓÖ÷»úÉϽÓÊÕµ½ÆäËù´«Ë͵Ä×ÊѶ¡£Ã¿Ì¨´Ó»ú¶¼±ØÐëÓµÓÐΨҼµÄλַ±àÂ룬¶øÎ¨ÓзûºÏλַ±àÂëµÄ´Ó»ú£¬²Å¿ÉÒÔ»ØÓ¦»ØÂ·¡£ÔÚ´ÓÊôÉ豸·¢ËÍ»ØÀ´µÄÐÅÏ¢ÖУ¬Ò»¸öµÈ¼ÛµÄµØÖ·Âë±íÃ÷Á˸ÃÐÅÏ¢µÄÀ´Ô´¡£
º¯ÊýÂë
ÓÉÖ÷É豸·¢³öµÄº¯ÊýÂ룬¸æÖª´ÓÉ豸½«Ö´ÐÐÄÄЩ¹¤×÷¡£º¯Êý´úÂëÁÐÔÚ±í4ÖУ¬ËüÃÇÓоßÌåµÄÒâÒ壬ҲÓоßÌåµÄ¶¯×÷¡£
ÖØÖõ¥Æ¬»ú
Ïòµ¥Ò»¼Ä´æÆ÷ÖÐдÈëÒÑÉ趨µÄ·¡½øÖÆÖµ
Êý¾ÝÇø
Êý¾ÝÇøÖк¬ÓÐÀ´×ÔÄÚ²¿µÄ·µ»ØÐÅÏ¢£¬»òÕßÊÇÀ´×ÔÄÚ²¿µÄ²Ù×÷£¬»òÕßÊÇÀ´×ÔÄÚ²¿µÄ¡£Õâ¸ö×ÊѶ¿ÉÒÔÊÇÊý×Ö£¬²Î¿¼Î»Ö·µÈµÈ¡£¾ÙÀýÀ´Ëµ£¬Èôº¯Êý³ÌʽÂëָʾ´ÓÊô³Ìʽ¶Á³ö¸Ã¼Ä´æÆ÷Öµ£¬×ÊÁÏÇø¶Î¾Í±ØÐë°üº¬¸Ã¼Ä´æÆ÷ËùÒª¶Á³öµÄ¿ªÊ¼Î»Ö·¼°¶Á³öµÄ³¤¶È¡£µØÖ·ºÍÊý¾ÝÐÅÏ¢Òò´Ó»ú¶øÒì¡£
²î´íУÑéÂë
Ö÷´Ó»ú¿ÉÒÔͨ¹ýУÑéÂëÀ´È·¶¨ËùÊÕµ½µÄÏûÏ¢ÊÇ·ñÓвî´í¡£ÔÚ´«µÝµÄ¹ý³ÌÖУ¬¿ÉÄÜ»áÊܵ½µç×ÓÔëÒôµÈÒòËØµÄÓ°Ïì¶ø²úÉúϸ΢µÄ±ä»¯¡£´íÎóУÕýÂë±£Ö¤ÁËÖ÷»úºÍ´Ó»úÔÚ´«ËÍʱ²»»á³öÏÖ´íÎó¡£ÕâʹµÃÕû¸öϵͳ¸ü¼Ó°²È«£¬¸ü¼Ó¸ßЧ¡£ÀûÓÃCRC-16½øÐÐÁËÎó²î¼ìÑé¡£
×¢Ò⣺ËùÓеÄÐÅÏ¢¿ò¼Ü¶¼²ÉÓÃͬÑùµÄ¸ñʽ£ºµØÖ·´úÂ룬¹¦ÄÜ´úÂ룬Êý¾ÝÇøÓò£¬´íÎó¼ì²â´úÂë¡£
ÓëÆäËüͨѶÐÒéÏà±È£¬ MODBUSµÄÓ¦ÓøüΪ¹ã·º£¬ÆäÖ÷ÒªÀíÓÉÓУº
1) ModBusÄܹ»Ö§³Ö¹¤ÒµË®ÀûÒ£²âÖÕ¶Ë»úRTUÖ§³ÖµÄRS-23285 £¨´®ÐУ©µÈÐí¶àµç×Ó½Ó¿Ú£¬²¢ÇÒÄܹ»Í¨¹ýË«½ÊÏߣ¬¹âÏË£¬ÎÞÏߵȲ»Í¬µÄýÌå½øÐÐͨÐÅ¡£
2)Ä£×ÜÏß¿ò¼Ü½á¹¹¼ò½à£¬ÈÝÒ×Àí½â£¬±ãÓÚÑÐÖÆ¡£
3)¾ßÓÐÁ¼ºÃµÄ¿É¿¿ÐÔ¡£ModBusÐÒéÒªÇó¶ÔÊý¾Ý½øÐмì²é¡£ÔÚ ASCII·½Ê½ºÍ RTU·½Ê½·Ö±ð²ÉÓÃÁË LRCºÍ16±ÈÌØµÄ CRCÁ½ÖÖ·½Ê½¡£ÁíÍ⣬ MODBUSϵͳ»¹²ÉÓÃÁËÖ÷´ÓʽµÄ¶¨Ê±ÊÕ·¢·½Ê½¡£ÔÚʵ¼ÊÓ¦ÓÃÖУ¬Èô´ÓÕ¾·¢Éú¹ÊÕÏ¡¢Í£µçµÈÇé¿ö£¬ÔòÓÉÖ÷¶ËÀ´ÅжÏÊÇ·ñ·¢Éú¹ÊÕÏ£¬²¢ÔÚ¹ÊÕÏÅųýºó£¬ÔÙÓÉÖ÷¶Ë×Ô¶¯»Ö¸´¡£