Modbus-IoT (Modbus over MQTT)

Modbus?? old school protocol (more than 40th years).

when Modbus created, it was created for Serial communication via RS485. after year by year, technology was changing and ethernet / TCP widely used in PLC and industrial control system, then Modbus move their medium to Ethernet and wrap their message in TCP (encapsulated) over ethernet.

Now, when everything going to the cloud or  RTU/PLC are not in the same place with SCADA and it only have internet connection, it will be hard and expensive for Modbus to keep exist in Internet area. because we need at least public IP for each device, or creating VPN.

but with MQTT the message can be send over the broker (on the cloud), so it will be exiting if modbus can be sent through MQTT.

if you’ve heard about Node-red this is cool IoT tools/platform built in NodeJS.

I’m using Node-red to make it’s encapsulation, and Modscan as Modbus Master (or SCADA), and Modsim as Modbus Slave (or  PLC)

READ MORE

Vijeo XL ( Machine SCADA )- Indusoft Web Studio – Intouch Machine Edition

Pada tahun 2013, Indusoft sebuah software company yang bermarkas di Texas USA, di akuisisi / dibeli oleh Vendor dan Multinational Company yang membindagi automation software dan DCS ternama yaitu Invensys dimana perusahaan ini memiliki sebuah rentang produk yang cukup lengkap dari Mulai DCS nya Foxboro DCS, Triconex Safety System, dan si Worldwide Market Leader untuk SCADA dan HMI yaitu Wonderware. Walaupun bertahun-tahun sebelumnya Invensys sudah mengakuisisi Wonderware, sepertinya masih belum puas dengan fitur-fitur dan segment yang ditawarkan oleh Wonderware baik Wonderware System Platform dan keturunannya seperti Intouch HMI. Mungkin Invensys mengejar ranah low-end market dimana indusoft pada saat itu bermain di OEM software dan HMI kelas murah.

READ MORE

Water Tank PLC Control Simulation with Matlab Simulink

httpvh://youtu.be/Uz827S7tjRU

To play this simulation you need to have this item:

  1. Unity PRO S (minimum) / Unity Pro L /Unity Pro XL. Version 5 / 6 / 7 / 8 (I’m not provide the installer, you can find on another forum 1.5 Gb)
  2. Matlab 2012 / Matlab 2013 with simulink (I’m not provide the installer, you can find on another forum 6.5Gb)
  3. Modbus Ehternet OPC Server (Iconics) http://adf.ly/lA1Gt this is free OPC server, you don’t need to license the software
  4. Simulink Model, OPC Configuration(should be load from iconics modbus OPC Server) http://adf.ly/lA205

READ MORE

Trik mencari modbus register

Anda pernah mengalami kesulitan ketika mencari register address dari device modbus yang datasheetnya sudah hilang atau susah ditemukan di internet, atau merek yang jarang dipakai banyak orang? maka jika anda memilki software untuk membaca data pengukuran dari device tersebut maka anda masih ada kesempatan untuk mengetahui registernya. READ MORE

Modbus Exception Codes

Modbus Exception Codes adalah  sebuah reply dari slave ketika kita mengQuery ke slave.

susunan Frame nya sebagai berikut:

[Slave Address] [Function Code Exception] [Error Code] [CRC1] [CRC2]

 

Function Code Exception:

merupakan “exception code” dari “function code” yang kita query kan ke Slave
contoh:

ketika kita merequest Funtion code 03 (Read Holding Register) maka exception code-nya adalah 83

ketika kita merequest Funtion code 06 (Write Multiple Register) maka exception code-nya adalah 86

Berikut adalah tabelnya:

Function Code in Request

Function Code in Exception Response

01 (01 hex) 0000 0001

129 (81 hex) 1000 0001

02 (02 hex) 0000 0010

130 (82 hex) 1000 0010

03 (03 hex) 0000 0011 131 (83 hex) 1000 0011

04 (04 hex) 0000 0100

132 (84 hex) 1000 0100
05 (05 hex) 0000 0101 133 (85 hex) 1000 0101
06 (06 hex) 0000 0110 134 (86 hex) 1000 0110
15 (0F hex) 0000 1111 143 (8F hex) 1000 1111
16 (10 hex) 0001 0000 144 (90 hex) 1001 0000

Error Code:

merupakan pesan error yang ingin disampaikan oleh slave terdiri seperti pada tabel dibawah:

Code Name Description
01 ILLEGAL FUNCTION The function code received in the query is not an allowable action for the slave
02 ILLEGAL DATA ADDRESS The data address received in the query is not an allowable address fror the slave
03 ILLEGAL DATA VALUE A value contained in the query data field in not an allowabel value for the slave.
04 SLAVE DEVICE FAILURE An unrecoverable error occurred while the savel was attempting to execute the requested action
05 ACKNOWLEDGE The slave has accpeted the request and is processing it, but a long duration of time is required to do so.
06 SLAVE DEVICE BUSY The slave is engaged in a long duration command.
07 NEGATIVE ACKNOWLEDGEMENT The slave cannot perform the program function received I the query
08 MEMORY PARITY ERROR The slave attempted to read extended memory, but detected a a parity error on the memory

Atau yang lebih lengkap:

Exception Code

Name

Meaning

01
(01 hex)

Illegal
Function

The function code received in the query is not an allowable action for the slave. This may be because the function code is only applicable to newer devices, and was not implemented in the unit selected. It could also indicate that the slave is in the wrong state to process a request of this type, for example because it is unconfigured and is being asked to return register values. If a Poll Program Complete command was issued, this code indicates that no program function preceded it.

02
(02 hex)

Illegal Data Address

The data address received in the query is not an allowable address for the slave. More specifically, the combination of reference number and transfer length is invalid. For a controller with 100 registers, a request with offset 96 and length 4 would succeed, a request with offset 96 and length 5 will generate exception 02.

03
(03 hex)
Illegal Data Value A value contained in the query data field is not an allowable value for the slave. This indicates a fault in the structure of remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.

04
(04 hex)

Slave Device Failure

An unrecoverable error occurred while the slave was attempting to perform the requested action.
05
(05 hex)
Acknowledge Specialized use in conjunction with programming commands.
The slave has accepted the request and is processing it, but a long duration of time will be required to do so. This response is returned to prevent a timeout error from occurring in the master. The master can next issue a Poll Program Complete message to determine if processing is completed.
06
(06 hex)
Slave Device Busy Specialized use in conjunction with programming commands.
The slave is engaged in processing a long-duration program command. The master should retransmit the message later when the slave is free..
07
(07 hex)
Negative Acknowledge The slave cannot perform the program function received in the query. This code is returned for an unsuccessful programming request using function code 13 or 14 decimal. The master should request diagnostic or error information from the slave.
08
(08 hex)
Memory Parity Error Specialized use in conjunction with function codes 20 and 21 and reference type 6, to indicate that the extended file area failed to pass a consistency check.
The slave attempted to read extended memory or record file, but detected a parity error in memory. The master can retry the request, but service may be required on the slave device.
10
(0A hex)
Gateway Path Unavailable Specialized use in conjunction with gateways, indicates that the gateway was unable to allocate an internal communication path from the input port to the output port for processing the request. Usually means the gateway is misconfigured or overloaded.
11
(0B hex)
Gateway Target Device Failed to Respond Specialized use in conjunction with gateways, indicates that no response was obtained from the target device. Usually means that the device is not present on the network.

 

 

Sumber:
http://ehelp.ingeardrivers.com/mbopc/trouble_shooting/error_codes/modbus_exception_codes.htm

http://www.simplymodbus.ca/exceptions.htm

Menggunakan Modbus Slave Multiple RTU

Modbus Slave Multiple RTU merupakan software yang berfungsi sebagai simulator pengganti PLC/Transmitter berbasis modbus. Jadi software ini menjadi PLC “Dummy” yang berisikan register-register modbus (Holding Register, Input Register, Status Register, dan Coil Register). Register tersebut dapat diakses menggunakan serial port dengan menggunakan PLC ataupun Komputer lain yang berfungsi sebagai HMI. Kegunaannya adalah untuk menggantikan PLC sebenarnya agar ketika membuat HMI akan lebih praktis ketika mencoba mengakses register. Kelebihan utama software ini yaitu dapat menjadi beberapa “dummy” sekaligus. cocok untuk membuat HMI pada SCADA system yang memiliki banyak RTU agar lebih praktis tidak memerlukan menggunakan banyak PLC yang sebenarnya.

READ MORE

Belajar Menggunakan Wonderware (HMI)

Di dalam subsistem dari SCADA terdapat yang namanya HMI (Human Machine Interface), yang secara harfiah dapat di definisikan sebuah alat/Komputer dengan tampilan grafis yang berhubungan langsung dengan manusia. Jadi HMI adalah sebuah Komputer yang menampilkan data-data dari hasil pengukuran, pengontrolan, atau menggambarkan sebuah proses yang sedang terjadi secara aktual (Real time).
Untuk membuat HMI pada komputer sebenarnya ada banyak jenisnya dan kita dapat membuat HMI dengan konvensional programming seperti Visual Basic, Visual C++, Visual C#, Delphi, Java, dan lain lain. Namun pada industri banyak HMI engineer dan Perusahaan lebih memilih menggunakan sebuah tools instan untuk membuat software HMI seperti  Wonderware. Hal ini disebabkan perusahaan lebih memilih untuk menghemat waktu dan cost dalam pembuatan HMI, sedangkan dari sisi HMI engineer lebih dimudahkan dalam pembuatannya. karena tools-tools grafik dan animasi sudah banyak tersedia di dalam HMI maker seperti Wonderware. walaupun dari sisi harga Wonderware jauh lebih mahal ketimbang dengan harga lisensi pemrograman konvensional bahkan ada yang gratis/open source. READ MORE

Modbus Protokol dan Serial Standard

Modbus adalah sebuah open protocol yang menggunakan Layer Application atau Layer ke tujuh pada OSI Model (OSI: Open Systems Interconnection). Modbus di transmissikan melalui komunikasi Serial (Modbus RTU / Modbus Serial) dan juga Ethernet (Modbus TCP). Modbus pertama kali dikembangkan oleh Modicon (Saat ini Modicon dimiliki oleh Schneider Electric), yang juga merupakan PLC Pertama didunia yang ditemukan oleh Dick Morley. kemudian Modbus dikembangkan secara open oleh organisasi Modbus.org Modbus merupakan protocol yang paling umum digunakan dibanyak Device di brand apapun saat ini karena kemudahannya dan sifatnya yang open menjadikannnya Protocol favorite di Industrial Automation.

Setelah saya mempelajari sistem SCADA secara umum maka kemudian saya mempelajari dari masing-masing subsistemnya. dimulai dari bagaimana cara kerjanya, bagaimana cara berkomunikasinya, bagaimana cara mengambil data dan lainnya. Sampai akhirnya saya mempelajari Komunikasi Serial pada PLC dan bertemu dengan jenis-jenis standard industri komunikasi serial dan juga standar industri protokol untuk komunikasi data. READ MORE

Telemetry-SCADA (Supervisory Control And Data Acquisition)

Memulai menulis dengan yang pertama kali saya temukan dalam dunia engineer diluar kampus yaitu SCADA dan PLC. Hal inilah yang pertama saya harus saya pelajari ketika saya menjadi engineer di sebuah perusahaan EPC yang kebetulan spesialis Oil & Gas industri.  Sebenarnya SCADA dan PLC sudah akrab di telinga ketika masih menjadi seorang mahasiswa teknik fisika. karena dalam beberapa mata kuliah seperti Control Process membahas tentang PLC. bahkan teman-teman mahasiswa banyak yang mengikuti kursus/pelatihan PLC yang seringkali diadakan di Yogyakarta.

Lalu apakah itu SCADA dan PLC?
SCADA atau Supervisory Control and Data Acquition adalah sebuah sistem yang dirancang untuk sebuah pengendalian dan pengambilan data dalam pengawasan (Operator/Manusia). biasanya SCADA digunakan untuk pengendalian suatu proses pada industri. SCADA merupakan sistem yang terdiri dari banyak komponen penyusunnya. READ MORE