iTOP-¿ª·¢°å-modbusÒÆÖ²ºÍʹÓÃÎĵµ

ÈÕÆÚ£º2018-08-28

  • ±¾Îĵµ½éÉÜ modbus¿âÈçºÎÒÆÖ²µ½ARM¿ª·¢°åÉÏ£¬ÒÔ¼°ÈçºÎʹÓòâÊÔ³ÌÐò¡£

    ÊÊÓÃѸΪiTOP-4412¿ª·¢°åØ­4418¿ª·¢°åØ­6818¿ª·¢°åØ­IMX6¿ª·¢°å

    1.ʲôÊÇ modbus

    ÍøÂçÉϹØÓÚ modbus ½éÉܵÄÎÄÕ·dz£¶à£¬»¹ÓÐרÃŽéÉÜ modbus µÄÊé¼®£¬ÕâЩ×ÊÁÏ´ó¼Ò ¶¼¿ÉÒÔÀûÓÃÆðÀ´£¬µ«ÊÇÔÚÕâһС½ÚÖУ¬×÷ÕßÏ£Íû°ïÖú´ó¼ÒÀí½â modbus µÄ±¾ÖÊ£¬modbus µ½ µ×ÊÇÓÃÀ´×öʲô£¬ÓÃÀ´½â¾öʲôÎÊÌâºÍ´æÔڵļÛÖµ¡£

    µÚÒ»¸öÒªÖØµãÀí½âµÄÊÇ£ºmodbus ÊÇÒ»¸ö¡°´¿Êý¾ÝЭÒ顱¡£

    ˵µ½ modbus ЭÒ飬¾­³£ºÍ RS232 ºÍ RS485 ÒÔ¼°ÒÔÌ«ÍøÁªÏµµ½Ò»Æð¡£ÄÇô modbus ºÍ RS485 ЭÒéÓÐʲô¹ØÏµÃ´£¿modbus ÊÇ´¿´âµÄÊý¾ÝЭÒ飬ºÍ RS232¡¢RS485 ºÍÍøÂçµÈЭÒéû ÓÐÒ»µã¹ØÏµ£¬Èç¹ûÔÚ´®¿Ú RS232 ÉÏʹÓà modbus ЭÒ飬modbus Ö»´¦Àíͨ¹ý´®¿Ú·¢ËÍǰºÍ´® ¿Ú½ÓÊÕºóµÄÊý¾Ý£¬´®¿ÚÖ»ÊÇÔÚ·¢ËÍÊý¾ÝǰʹÓà modbus ЭÒéÀ´×ª»»Êý¾Ý£¬½ÓÊÕÊý¾ÝÖ®ºó£¬½« Êý¾Ýͨ¹ý modbus ЭÒéת»»³öÀ´¡£

    µÚ¶þ¸öÒªÖØµãÀí½âµÄÊÇ£ºmodbus ÊÇÒ»¸ö¡°Í¨ÓõĴ¿Êý¾ÝЭÒ顱¡£

    ÔõôÀí½âͨÓõÄÊý¾ÝЭÒéÄØ£¿×÷ÕßÔÚ¶ÁÊéµÄʱºò£¬¸Õ¿ªÊ¼Ñ§Ï°Ç¶Èëʽ£¬Ê¹ÓõÄÊÇ 51 µ¥Æ¬ »ú£¬µ±Ê±Òªµ÷ÊÔ³ÌÐòµÄʱºò£¬Ò»°ãÖ´Ðе½ÄÄÒ»²½£¬¾ÍµãÁÁÒ»¸öµÆ»òÕßÀ­¸ßÒ»¸ö IO£¬ºóÀ´¾õµÃ ͨ¹ý¡°µãµÆ¡±µ÷ÊÔ³ÌÐòÊÇÔÚÌ«ÂýÁË£¬ÓÚÊÇ×Ô¼º¶¨ÒåÁË¡°´®¿ÚÊý¾ÝЭÒ顱£¬ÀýÈ磺ִÐе½Ä³Ò»¶Î ´úÂ룬ÎҾʹòÓ¡ 0x01£¬Õâ¶Î´úÂë³öÏÖ´íÎó¾Í´òÓ¡ 0x02...ÏÖÔÚ´ó¼ÒѧϰÁË linux£¬¶¼ÖªµÀ linux ¿ØÖÆÌ¨ÁË£¬linux ¿ØÖÆÌ¨¶ÔÓÚ³ÌÐòÔ±À´Ëµ£¬Ö÷Òª¾ÍÊÇÓÃÀ´µ÷ÊÔ³ÌÐòµÄ£¬´ø´úÂëÖÐÌí¼Ó print º¯ Êý¾Í¿ÉÒÔʵÏÖ¿ØÖÆÌ¨´òÓ¡×Ö·û´®¡£

    ÄÇô×÷Õßµ±Äê×Ô¼º¶¨ÒåµÄ¡°´®¿ÚÊý¾ÝЭÒ顱£¬¾Í²»ÊÇÒ»¸öͨÓõÄЭÒ飬ֻÄÜ×Ô¼ºÊ¹Ó㬵« ÊÇ linux ¿ØÖÆÌ¨£¬ÎÞÂÛÄÄÒ»¸ö linux ¹¤³Ìʦ£¬²Ù×÷µÄ·½Ê½¶¼ÊÇÀàËÆµÄ¡£ÄÇô linux ¿ØÖÆÌ¨£¬ÔÚ ËùÓÐµÄ linux É豸ÉÏʹÓ÷½·¨¾ÍÊÇͨÓõġ£

    modbus ¿ÉÒÔÀà±ÈΪÆÕͨ»°£¬Èç϶ÔÓ¦¹ØÏµ£º

    ¸£½¨ÈË¡úÃöÄÏÓï¡úÆÕͨ»°

    ¹ã¶«ÈË¡úÔÁÓï¡úÆÕͨ»°

    ¶«±±ÈË¡ú¶«±±»°¡úÆÕͨ»°

    ËÄ´¨ÈË¡úËÄ´¨»°¡úÆÕͨ»°

    ¸£½¨ÈË¡±±È×÷¡°RS232¡±£¬¡°¹ã¶«ÈË¡±ºÍ¡°¶«±±ÈË¡±±È×÷ RS485£¬¡°ËÄ´¨ÈË¡±±È×÷ ¡°ÒÔÌ«Íø¡±...ÄÇô¡°ÆÕͨ»°¡±¾ÍÊÇ modbus ЭÒé¡£modbus ЭÒéºÍ¡°ÈË¡±Õâ¸öÓ²¼þûÓÐ¹Ø Ïµ£¬ºÍ¡°ÈË¡±µÄ˵·¨·½Ê½Ã»ÓйØÏµ£¬ÉõÖÁ»úÆ÷ÈËÖ»Òª·¢ÉùÊÇ¡°ÆÕͨ»°¡±£¬Õâ¸öÆÕͨ»°Ò²ÊÇ modbus ЭÒé¡£

    ÍøÉϹØÓÚ modbus µÄ×ÊÁϺܶ࣬Óв»ÉÙ×ÊÁϽ« modbus ºÍ RS232 °ó¶¨£¬ÕâÒ»µãÊÇÍêÈ« ´íÎóµÄ£¬Çë´ó¼ÒÎñ±Ø×¢Ò⣬modbus Ö»ÊÇÒ»¸ö¡°Í¨ÓõĴ¿Êý¾ÝЭÒ顱¡£

    modbus ÊÇÓÃÓÚ¹¤ÒµÏÖ³¡µÄ×ÜÏßЭÒ飬Ëü²»½ö½öÊÇÔÚ PLC »òÕßµ¥Æ¬»úÉÏ¿ÉÒÔʹÓã¬ÔÚÈÎ ºÎ¿ÉÒÔÅÜ´úÂëµÄµç×ÓÉ豸É϶¼¿ÉÒÔʹÓã¬ÒòΪ modbus ¶ÔÓ²¼þûÓÐÈκζ¨Òå¡£µ±È»£¬ modbus Ó¦Ó÷¶Î§Ö÷ÒªÊÇÔÚ¹¤Òµ¿ØÖÆÉÏ¡£Èç¹ûÿһ̨¹¤Òµ¿ØÖÆÉ豸£¬¶¼ÓÐÒ»ÖÖ×Ô¶¨ÒåµÄЭ Ò飬Äǽ«ÊǺֲܿÀµÄ£¬modbus ЭÒé¿ÉÒÔÓÃÔÚËùÓпØÖÆÉ豸ÉÏ£¬ËùÓеĹ¤Òµ¿ØÖÆÉ豸¶¼¿ÉÒÔ ¼æÈÝ modbus ЭÒé¡£

    modbus µÄ±¾ÖÊÊÇÒ»¸öͨÓõĴ¿Êý¾ÝЭÒ飬modbus ÊÇÓÃÀ´¹æ·¶¹¤ÒµÏÖ³¡¸÷ÖÖ¿ØÖÆÉ豸 µÄͨÐÅЭÒ飬ͨ¹ý modbus ЭÒ飬¿ØÖÆÉ豸ͨ¹ýÍøÂ磨RS485 ºÍÒÔÌ«ÍøµÈ£©¿ÉÒÔºÍÆäËüÉ豸 Ö®¼äͨÐÅ£¬²»Í¬³§É̵ÄÉ豸Éú²úµÄÉ豸¿ÉÒԺܷ½±ãµÄÁ¬³É¹¤ÒµÍøÂç¡£

    2.modbus ÒÆÖ²µ½ linux

    2.1 modbus Ô´ÂëÏÂÔØ

    ¿ÉÒÔ´Ó libmodbus ¹ÙÍø http://libmodbus.org/download/ÏÂÔØ 3.1.4 °æ±¾£¬Ò²¿ÉÒÔÓà ѸΪÌṩµÄÏÂÔØºÃµÄÔ´Âë¡£

    ×÷Õß½«¡°libmodbus-3.1.4.tar.gz¡±ÏÂÔØ£¬´ò°üÔÚ¡°topeet_modbus.tar.gz¡±ÖУ¬ÆäÖл¹ ÓÐÒÆÖ²ºÃÎļþ¡£

    2.2 arm-linux É쵀 modbus ÒÆÖ²ºÍ±àÒë

    ½»²æ±àÒëʹÓõıàÒëÆ÷ÊÇ¡°arm-2009q3¡±£¬ÈçÏÂͼËùʾ¡£

    ͨ¹ý ssh ½«ÏÂÔØºÃµÄÔ´ÂëѹËõ°ü¡°libmodbus-3.1.4.tar.gz¡±¿½±´µ½ Ubuntu ÉÏ£¬Ê¹ÓÃÃü Áî¡°tar -vxf libmodbus-3.1.4.tar.gz¡±½âѹ£¬½âѹºóÉú³ÉĿ¼¡°libmodbus-3.1.4¡±£¬ÈçÏ ͼËùʾ¡£

    ʹÓÃÃüÁî¡°mkdir install¡±£¬Ð½¨ install ·¾¶£¬ÓÃÒÔ°²×°Éú³ÉµÄÎļþ£¬ÈçÏÂͼËùʾ¡£

    ½øÈë libmodbus-3.1.4£¬Ö´ÐÐÃüÁî./configure ac_cv_func_malloc_0_nonnull=yes -- host=arm-none-linux-gnueabi --enable-static --prefix=/home/minilinux/install/ ¡£ Host=ºóÃæµÄÊDZàÒëÆ÷ǰ׺£¬--prefix=ºóÃæµÄÊǰ²×°Ä¿Â¼£¬¿É¸ù¾Ý×Ô¼º»·¾³È·¶¨£¬ÈçÏÂͼËù ʾ¡£

    ÈçÏÂͼËùʾ£¬Ö´ÐÐÍê±Ï¡£

    Ö´ÐбàÒëÃüÁî¡°make¡±£¬ÈçÏÂͼËùʾ¡£

    ±àÒëÍê³É£¬ÈçÏÂͼËùʾ¡£

    Ö´Ðа²×°ÃüÁî¡°make install¡±£¬Ôò°²×°µ½./configure Ö¸¶¨µÄĿ¼£¬×÷ÕßÕâÀïÊÇ ¡°/home/minilinux/install/¡±Ä¿Â¼£¬ÈçÏÂͼËùʾ¡£

    °²×°Íê³É£¬ÈçÏÂͼËùʾ¡£

    ²é¿´°²×°Ä¿Â¼ install£¬ÔÚ install Éú³ÉÈý¸öĿ¼£ºinclude¡¢lib¡¢share£¬ÈçÏÂͼËùʾ¡£

    ÈçÏÂͼËùʾ£¬Ê¹Óà file ÃüÁî²é¿´ lib Ŀ¼ÏµĿâÎļþ£¬¿ÉÒÔ·¢ÏÖÆäÖеÄÎļþÊÇ arm ¼Ü¹¹ µÄ¡£

    ½«±àÒë³öÀ´µÄ lib ·¾¶ÏµÄËùÓÐÎļþ¿½±´µ½¿ª·¢°åµÄ¡°/lib¡±Ä¿Â¼Ï¡£

    ÖÁ´Ë£¬modbus µÄ arm-linux µÄ¿âÎļþ±àÒëÍê³É¡£

    2.3 arm µÄ²âÊÔ³ÌÐò

    ½øÈëĿ¼/home/minilinux/libmodbus-3.1.4/tests/,²é¿´²âÊÔ³ÌÐò random-test- server.c£¬ÈçÏÂͼËùʾ£¬ÒѾ­±àÒë³öÀ´ÁË£¬µ«ÊÇ»¹ÊÇÐèÒªÐÞ¸ÄÒ»ÏÂÔ´ÂëÖеö²ÎÊý£¬ÖØÐ±à Òë¡£

    ÊäÈëÃüÁî vim random-test-server.c ´ò¿ª²âÊÔ³ÌÐò£¬ÀïÃæ 23 ÐÐ ctx =modbus_new_tcp("127.0.0.1", 1502); ¸Ä³É ctx = modbus_new_tcp(NULL, 1502);£¬ ¼´ server ¼à¿ØËùÓÐµÄ ip µØÖ·£¬¶Ë¿ÚÊÇ 1502¡£

    È»ºóÖ´ÐÐÃüÁî½»²æ±àÒëÃüÁîarm-none-linux-gnueabi-gcc -o random-test-server random-test-server.c - L/home/minilinux/install/lib -lmodbus -I/home/minilinux/install/include/modbus Éú³É¿ÉÖ´ÐÐÎļþ random-test-server£¬ÈçÏÂͼËùʾ¡£

    ÈçÏÂͼËùʾ£¬¿ÉÖ´ÐÐÎļþÊÇ arm ¼Ü¹¹µÄ¡£

    ÖÁ´Ë£¬arm ·þÎñ¶ËµÄ²âÊÔÀý³Ì¡°random-test-server¡±±àÒëÍê³É¡£

    2.3 x86-linux µÄ modbus ÒÆÖ²ºÍ±àÒë

    ÔÚ minilinux Ŀ¼ÏÂÔÙ½¨Ò»¸öÎļþ¼Ð£¬ÓÃÓÚ·Å modbus µÄ x86 µÄÎļþ£¬ÈçÏÂͼËùʾ£¬Ê¹ ÓÃÃüÁî¡°tar -vxf libmodbus-3.1.4.tar.gz -C x86-modbus/¡±£¬½«Ô´Âë½âѹµ½Õâ¸öĿ¼Ï¡£

    ½øÈë½âѹ³öÀ´µÄ¡°/home/minilinux/x86-modbus/libmodbus-3.1.4¡±Ä¿Â¼£¬ÈçÏÂͼËù ʾ£¬Ö´ÐÐÃüÁî¡°./configure¡±,²»ÓüÓÈκβÎÊý£¬Ä¬ÈϾÍÊÇ GCC-x86 ÅäÖá£

    ÅäÖÃÍê³É£¬ÈçÏÂͼËùʾ¡£

    Ö´ÐС°make¡±±àÒëÃüÁȻºóÖ´Ðа²×°ÃüÁî¡°make install¡±£¬°²×°Íê³É£¬ÈçÏÂͼËù ʾ¡£

    ½øÈë test Ŀ¼£¬Ç°ÃæÎÒÃDZàÒëµÄ arm ϵIJâÊÔ³ÌÐòÊÇ server,ÄÇô Ubuntu ÏÂÔËÐеľÍÓ¦ ¸ÃÊÇ client ¿Í»§¶Ë£¬ÈçÏÂͼËùʾ¡£

    ¿Í»§¶ËÐèÒª·þÎñ¶ËµÄ IP µØÖ·£¬ÈçÏÂͼËùʾ£¬×÷ÕߵķþÎñ¶Ë£¨Ò²¾ÍÊÇ¿ª·¢°å¶Ë£©IP ÊÇ ¡°192.168.2.20¡±¡£

    ½Ó×Å£¬ÐÞ¸Ä x86-modbus Ŀ¼Ïµġ°random-test-client.c¡±Îļþ£¬Ê¹Óà vim ÃüÁî´ò¿ª random-test-client.c Îļþ£¬½«

    ctx = modbus_new_tcp("127.0.0.1", 1502);

    ¸Ä³É

    ctx = modbus_new_tcp(¿ª·¢°å IP, 1502);

    ÈçÏÂͼËùʾ£¬È»ºó±£´æÍ˳ö¡£

    Ö´ÐÐÃüÁgcc -o random-test-client random-test-client.c `pkg-config --libs --cflags libmodbus`

    ±àÒëÉú³É random-test-client ¿ÉÖ´ÐÐÎļþ£¬ÈçÏÂͼËùʾ£¬±àÒë³öµÄ¿ÉÖ´ÐÐÎļþÊÇ x86 µÄ¡£

    ÖÁ´Ë£¬x86 ÉϵIJâÊÔ³ÌÐò±àÒëÍê³É¡£

    3.²âÊÔ

    Ê×ÏÈÈ·±£¿ª·¢°åºÍÐéÄâ»ú Ubuntu ¿ÉÒÔ ping ͨ£¬ÈçÏÂͼËùʾ£¬×÷ÕßÐéÄâ»úµÄ IP Ϊ ¡°192.168.2.200¡±£¬Í¨¹ý¿ª·¢°å¿ÉÒÔ ping ͨ Ubuntu¡£

    Æä´Î£¬×¢Òâ½«Ç°Ãæ±àÒë³öµÄ arm µÄ¿âÎļþ¿½±´µ½¿ª·¢°åÉÏ£¬ÈçÏÂͼËùʾ¡£

    ÔÚ¿ª·¢°åÉÏÔËÐзþÎñ¶Ë³ÌÐò£¬ÈçÏÂͼËùʾ¡£

    ÔÚÐéÄâ»ú Ubuntu ÉÏÔËÐпͻ§¶Ë³ÌÐò¡°./random-test-client¡±£¬ÔËÐÐÍê±ÏÈçÏÂͼËùʾ

    ·þÎñ¶ËÔËÐÐÍê±Ï£¬ÈçÏÂͼËùʾ¡£

    ÖÁ´Ë£¬modbus µÄÒÆÖ²ºÍ²âÊÔÍê³É¡£

  • ÍúÍú×Éѯ
  • µãÕâÀï¸øÎÒ·¢ÏûÏ¢
  • µç»°×Éѯ

  • 01085270716
XML 地图