ڣ2018-08-28
ĵ modbusֲARMϣԼʹòԳ
ѸΪiTOP-4412ح4418ح6818حIMX6
1.ʲô modbus
Ϲ modbus ܵ·dz࣬רŽ modbus 鼮Щϴ һСУϣ modbus ıʣmodbus ʲôʲôʹڵļֵ
һҪصǣmodbus һЭ顱
˵ modbus Э飬 RS232 RS485 Լ̫ϵһô modbus RS485 Эʲôϵômodbus ǴЭ飬 RS232RS485 Эû һϵڴ RS232 ʹ modbus Э飬modbus ֻͨڷǰʹ ڽպݣֻڷǰʹ modbus Эתݣ֮ ͨ modbus Эת
ڶҪصǣmodbus һͨõĴЭ顱
ôͨõЭأڶʱտʼѧϰǶʽʹõ 51 Ƭ ʱҪԳʱһִеһ͵һƻһ IO ͨơԳ̫ˣԼˡЭ顱磺ִеijһ 룬Ҿʹӡ 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 Ŀ¼includelibshareͼʾ

ͼʾʹ file 鿴 lib Ŀ¼µĿļԷеļ arm ܹ ġ

lib ·µļġ/libĿ¼¡
ˣmodbus arm-linux Ŀļɡ
2.3 arm IJԳ
Ŀ¼/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); ij 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 ˵IJ̡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);
ij
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 ֲͲɡ