1. Промислові мережі та інтеграційні
технології
Утиліти MODBUS
реєстрація fieldbus_book@ukr.net
автор і лектор: Олександр Пупена (pupena_san@ukr.net)
зворотній зв’язок по курсу: Інтернет-форум АСУ в Україні (www.asu.in.ua)
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
1
2. Використання універсальних утиліт для роботи з
COM-портами та TCP, сніфери, аналізатори
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
2
Утиліти для роботи з СОМ та TCP
• ручне формування та аналіз байтових послідовностей (кадрів для
Serial та пакетів по TCP та UDP)
• утиліти для роботи з COM див тему 2.3.Утиліти для роботи з СОМ-
портом
• утиліти для роботи з послідовностями поверх TCP/UDP
• http://packetsender.com/ - відправка/прийом поверх TCP/IP (UDP/IP)
Сніфери, аналізатори
• прослуховування з аналізом протоколу:
• WireShark – сніфер, підтримує аналіз пакетів Modbus TCP/IP
• аналізатори Modbus PDU, аналізатор повідомлень (парсери):
• CAS Modbus RTU/TCP Parser Analyze Modbus Messages. Type in a string of hex bytes
and the parser will break the message out for you showing you destination, function,
data..
3. Утиліти для імітації Modbus Server/Slave
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
3
• функції Modbus RTU/ASCII Slave:
• ModLink компоненти для Borland Delphi/С++. Є скомпільований демо-проект
Modbus RTU/ASCII Slave для 32-х та 64-х бітних платформ.
• MODBUS Serial RTU+TCP/IP Simulator http://www.plcsimulator.org/ Імітатор
Modbus RTU/ASCII Slave
• Modbus DiagSlave консольна утиліта Modbus RTU/ASCII Slave (Linux, QNX RTOS 6.0.0,
Win32)
• Modbus Tools Набір утиліт Modbus Slave (тріал на 30 діб по 10 хв), .NET та ActiveX
компоненти.
• http://simplymodbus.ca Simply Modbus Slave, в демо-режимі обмежена
функціональність
• http://www.tracker2.narod.ru/ - ModbusSlave у вільному доступі, відкриті коди, з
2001 року не оновлюється
• функції Modbus TCP Server:
• MODBUS Serial RTU+TCP/IP Simulator http://www.plcsimulator.org/ Імітатор
Modbus TCP/IP Server.
• Modbus DiagSlave консольна утиліта Modbus TCP/IP Server (Linux, QNX RTOS 6.0.0,
Win32)
• Ananas Modbus TCP/IP Server, тільки Input та Holding Registers
• http://www.tracker2.narod.ru/ - ModbusTCPSlave, у вільному доступі, відкриті коди,
з 2001 року не оновлюється
4. Утиліти Modbus Client/Master
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
4
• функції Modbus RTU/ASCII Master:
• ModLink компоненти для Borland Delphi/С++. Є скомпільований демо-проект Modbus RTU/ASCII
Master для 32-х та 64-х бітних платформ.
• LibModbus - Linux dynamic library Відкриті бібліотеки (створені на С) для Linux, Mac OS X,
FreeBSD, QNX and Win32 для відправки/прийому даних з використанням протоколу Modbus
RTU/ASCII.
• Modpoll Modbus Polling Tool консольна утиліта Modbus RTU/ASCII Master (Linux, QNX RTOS
6.0.0, Win32)
• Modbus RTU and TCP ActiveX controls ActiveX, .NET компоненти (демо на 60 хвилин) для
Modbus RTU/ASCII Master
• CAS Modbus Explorer Modbus RTU/ASCII Master, пошук Modbus Server в мережах, визначення
діапазону доступних змінних
• http://simplymodbus.ca Simply Modbus Master, в демо-режимі обмежена функціональність
• функції Modbus TCP Client:
• Modpoll Modbus Polling Tool консольна утиліта Modbus TCP/IP Client (Linux, QNX RTOS 6.0.0,
Win32)
• Modbus RTU and TCP ActiveX controls ActiveX, .NET компоненти (демо на 60 хвилин) для
Modbus TCP/IP Client
• Ananas Modbus TCP/IP Client, тільки Input та Holding Registers
• CAS Modbus Explorer Modbus TCP/IP Client, пошук Modbus Server в мережах, визначення
діапазону доступних змінних
• http://simplymodbus.ca Simply Modbus TCP Client, в демо-режимі обмежена функціональність
5. Modlink VCL Demo
http://www.ozm.cz/ivobauer/modlink/downloads.htm
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
5
• розрахована перш за все як
демонстрації можливостей
набору компонентів Delphi/C++
Builder
• Modbus RTU/ASCII Master
• Modbus RTU/ASCII Slave
• Read/Write Registers, Bits
• Diagnostic Functions
• вікно виводу з пакетами
• (-) у вікні налаштування Серверу
(Slave) добавлення тільки по
одній змінній
• на сайті доступний базовий
набір компонентів
6. Modbus serial RTU/ASCII/TCP simulator
http://www.plcsimulator.org
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
6
• Modbus RTU/ASCII Slave
• Modbus TCP/IP Server
• вікно виводу пакетів
• імітація роботи усіх Slave на шині
• підтримка VB-скриптів для імітації
роботи Slave (наприклад програми
ПЛК)
• за символічну ціну автор викладує
вихідний код
7. Modpoll Modbus® Polling Tool
http://www.focus-sw.com/fieldtalk/modpoll.html
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
7
• консольна утиліта
• Modbus RTU/ASCII Master
• Modbus TCP/IP Client
• робота з FLOAT, DINT
• платформи Linux (i386),
Windows (i386), Solaris (Sparc),
QNX 6 (i386)
• викладений вихідний код на
C++
modpoll [OPTIONS] SERIALPORT|HOST [WRITEVALUES...]
Arguments:
SERIALPORT Serial port when using Modbus ASCII or Modbus RTU protocol
COM1, COM2 ... on Windows
/dev/ttyS0, /dev/ttyS1 ... on Linux
/dev/ser1, /dev/ser2 ... on QNX
HOST Host name or dotted IP address when using MODBUS/TCP protocol
General options:
-m ascii Modbus ASCII protocol
-m rtu Modbus RTU protocol (default if SERIALPORT contains /, or COM)
-m tcp MODBUS/TCP protocol (default otherwise)
-m enc Encapsulated Modbus RTU over TCP
-a # Slave address (1-255 for serial, 0-255 for TCP, 1 is default)n
-r # Start reference (1-65536, 1 is default)
-c # Number of values to poll (1-125, 1 is default)
-t 0 Discrete output (coil) data type
-t 1 Discrete input data type
-t 3 16-bit input register data type
-t 3:hex 16-bit input register data type with hex display
-t 3:int 32-bit integer data type in input register table
-t 3:mod 32-bit module 10000 data type in input register table
-t 3:float 32-bit float data type in input register table
-t 4 16-bit output (holding) register data type (default)
-t 4:hex 16-bit output (holding) register data type with hex display
-t 4:int 32-bit integer data type in output (holding) register table
-t 4:mod 32-bit module 10000 type in output (holding) register table
-t 4:float 32-bit float data type in output (holding) register table
-
-i Slave operates on big-endian 32-bit integers
-f Slave operates on big-endian 32-bit floats
-e Use Daniel/Enron single register 32-bit mode
-0 First reference is 0 (PDU addressing) instead 1
-1 Poll only once only, otherwise every poll rate interval
-l Poll rate in ms, (1000 is default)
-o # Time-out in seconds (0.01 - 10.0, 1.0 s is default)
Options for MODBUS/TCP:
-p # TCP port number (502 is default)
Options for Modbus ASCII and Modbus RTU:
-b # Baudrate (e.g. 9600, 19200, ...) (19200 is default)
-d # Databits (7 or 8 for ASCII protocol, 8 for RTU)
-s # Stopbits (1 or 2, 1 is default)
-p none No parity
-p even Even parity (default)
-p odd Odd parity
-4 # RS-485 mode, RTS on while transmitting and another # ms after
8. Modbus Tools (Modbus Poll, Modbus Slave …)
http://www.modbustools.com/index.html
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
8
• тріал-версії тільки на 60 днів по 10 хв на
запуск (хоча програми дуже популярні :-)
)
• Poll: Modbus RTU/ASCII Master
• Poll: Modbus TCP/IP (+UDP) Client
• Poll: Modbus RTU over TCP/IP(+UDP) Client
• Slave: Modbus RTU/ASCII Slave
• Slave : Modbus TCP/IP (+UDP) Srever
• Slave : Modbus RTU over TCP/IP (+UDP)
Server
• вікно виводу пакетів
• є інтерфейс OLEAutomation для доступу
наприклад. VB, VBA
9. CAS Modbus Scanner (команда Poll)
http://www.chipkin.com/products/software/modbus-software/cas-modbus-explorer/
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
9
• Modbus ASCII/RTU Master
• Modbus TCP/IP Client
• декілька з'єднань
• вікно виводу пакетів
• безкоштовна!
10. CAS Modbus Scanner (команда Discover)
http://www.chipkin.com/products/software/modbus-software/cas-modbus-explorer/
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
10
• пошук Серверів (ASCII/RTU/TCP)
• для кожного пристрою визначення
діапазону регістрів
• безкоштовна!
12. Утиліти та компоненти для роботи з Modbus
(вибірка з Inernet)
07.04.2015
NET - ModbusUtility
pupena_san@ukr.net
12
http://modbus.org/tech.php колекція утиліт від Modbus.org
ModLink компоненти для Borland Delphi/С++. Є скомпільований демо-проект Modbus RTU/ASCII Master/Slave для 32-х та 64-х
бітних платформ.
LibModbus - Linux dynamic library Відкриті бібліотеки (створені на С) для Linux, Mac OS X, FreeBSD, QNX and Win32 для
відправки/прийому даних з використанням протоколу Modbus RTU/ASCII.
Jamod - Java Modbus implementation Java Modbus Library.
MODBUS Serial RTU+TCP/IP Simulator http://www.plcsimulator.org/ Імітатор Modbus RTU/ASCII Slave та Modbus TCP/IP Server.
Modpoll Modbus Polling Tool консольна утиліта Modbus RTU/ASCII Master та Modbus TCP/IP Client (Linux, QNX RTOS 6.0.0, Win32)
Modbus DiagSlave консольна утиліта Modbus RTU/ASCII Slave та Modbus TCP/IP Server (Linux, QNX RTOS 6.0.0, Win32)
Modbus RTU and TCP ActiveX controls ActiveX, .NET компоненти (демо на 60 хвилин) для Modbus RTU/ASCII Master, Modbus
TCP/IP Client
Modbus Tools Набір утиліт ModbusPoll та Modbus Slave (тріал на 30 діб по 10 хв), .NET та ActiveX компоненти.
Ananas Modbus TCP/IP Client/Server, тільки Input та Holding Registers
CAS Modbus RTU/TCP Parser Analyze Modbus Messages. Type in a string of hex bytes and the parser will break the message out for
you showing you destination, function, data.
CAS Modbus Explorer Modbus RTU/ASCII Master, Modbus TCP/IP Client, пошук Modbus Server в мережах, визначення діапазону
доступних змінних
http://simplymodbus.ca Simply Modbus Master, Simply Modbus Slave, Simply Modbus TCP Client, в демо-режимі обмежена
функціональність
http://www.tracker2.narod.ru/ - ModbusSlave, ModbusTCPSlave, у вільному доступі, відкриті коди, з 2001 року не оновлюється
http://www.modbusdriver.com/ - Modbus Protocol Drivers & Libraries
WireShark – сніфер, підтримує аналіз пакетів Modbus TCP/IP
http://packetsender.com/ - відправка/прийом поверх TCP/IP (UDP/IP)