Industrial Communication Protocol Segregation
Mengapa ada banyak sekali protokol komunikasi data di dunia ini?
Mungking ini pertanyaan yang sering terpikirkan dibanyak benak orang banyak selama ini. apa saja Industrial protocol yang ada? sangat-sangat banyak… karena setiap brand device mengusung protocolnya masing-masing dan dengan keunggulannya masing-masing. bisa di cek di Driver List protocol Machine SCADA Expert bayangkan disini saja ada 200driver.
tapi, dari kesemua protokol, ada beberapa Industrial protokol (yang digunakan untuk Control System) yang sangat-sangat common atau populer di segment nya masing-masing yang digunakan banyak brand. apa saja?
Modbus, Profibus, Modbus TCP, Profinet, Ethernet/IP, DeviceNET, DNP3, IEC61850, BAC, BACNET, IEC 60870-5-101, IEC 60870-5-104, EtherCAT, LonWorks, CANOpen, HART.
Ayo kita segragasi berdasarkan pemakaiannya:
Industri Proses (Field Bus, Instrumentation / Transmitter) :
- Modbus
- HART
- Profibus PA
- FF (FieldbusFoundation)
Industri Proses (device network)
- Modbus TCP
- Profinet
- Ethernet/IP (CIP)
Industri Proses (Control Network – To software Communication)
- Modbus TCP
- EtherNet/IP
Industri Proses – Telemetry
- DNP3
- IEC 60870-5-101/104
- Modbus
Manufacturing
- CANOpen
- AS-i
- DeviceNET
- Profibus (PA/DP)
- CANBus
Substation Automation / Electrical Device Network
- IEC 61850
- DNP3
- IEC 60870-5-101/104
- Modbus
Building Automation
- BACNet – create by ASHRAE
- LonWorks
- Modbus
Cara Mendeteksi Alarm First Out – Control Expert – Unity Pro

pada suatu program PLC yang banyak sekali membaca alarm dan interlock, kadang kita dipusingkan ketika terjadinya suatu kejadian dimana alarmnya sudah aktif semua. sedangkan kita butuh tau alarm mana yang menjadi pemicu awalnya. kadang alarm di software SCADA pun delay dan muncul secara bersamaan, hal ini dikarenakan software SCADA membutuhkan waktu sekian ratus millisecond untuk mengambil data dari PLC. sedangkan bisa jadi kejadian antar alarm yang terjadi kurang dari 100ms.
lalu bagaimana caranya?
READ MORESchneider Electric – PLC Software – Modicon & Telemecanique

if you are new with Modicon PLC especially if you facing Old PLC and you want to upload data from PLC, you might be confuse for Software Option in Schneider PLC / Modicon PLC. here is the detail of each product such as Modsoft, Concept, ProWorx, PL7, Unity Pro, Control Expert
READ MOREBaca INT 64 bit di SCADA?
seperti kita ketahui, kebanyakan SCADA belum support tipe data Integer 64 bit (max value: 9,223,372,036,854,775,807), lalu gimana kalau kita mau baca dari device yang menyediakan data ini? contohnya pada power meter Schneider untuk data KWH
berikut trik nya:
- Siapkan 1 variable Real / floating 32bit – sebagai contoh kita kasih nama Energy)
- Siapkan 4 variable INT (16bit) dimana nilai tersebut didapat dari register modbus PM yaitu 43204, 43205, 43206, 43207) – sebagai contoh kita kasih nama RAW_1 dan RAW_2, RAW_3, dan RAW_4
Energy = (raw_4 * 281474976710656) + (raw_3 * 4294967296) + (raw_2 * 65536) + raw_1
Cara Install NODE-RED di Windows
Cara install Node-RED di Operating System Windows adalah sebagai berikut:

- Download NODEJS dari nodejs.org kemudian pilih operating system Windows dan “.msi” installer

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)

Industry 4.0: Era baru Industrial Automation
IIoT – Evolution of Industry
Pada awal tahun 2018 tepatnya bulan January, saya sempat diminta untuk mengisi sebuah Acara seminar skala ASEAN di ITB, dengan topic utama Industry 4.0 atau Industrial Revolution generasi 4. seperti yang di cuplik beberapa media dan web resmi ITB:
- http://blog.studentjob.co.id/industrial-engineering-iecom-2018/
- https://boulevarditb.com/2018/01/14/grand-seminar-iecom-2018-industry-4-0-reshaping-indonesias-industry-along-with-digital-revolution/
- http://blog.studentjob.co.id/industrial-engineering-iecom-2018/
- https://www.itb.ac.id/news/read/56512/home/iecom-2018-pionir-indonesia-dalam-kompetisi-teknik-industri-level-internasional
Pada sesi tersebut, saya menjelaskan beberapa hal mengenai sesuatu yang mendorong terjadinya digitalisasi di dalam Industri dan hal apa saja yang perlu diperhatikan dalam Industry 4.0 ini. slide-slide saya dibawah kebanyakan saya ambil dari Slide yang ada dari Schneider Electric sebagai perusahaan yang sangat aktif dalam melakukan update teknologi pada semua lini produknya.
hal hal yang mendorong terjadinya Digitalisasi Industri atau lebih umumnya dikenal dengan Industrial Automation:
- Connectivity, ketika semua device saling terhubung dan merupakan sebuah kebutuhan baru
- Mobility, dimana seseorang tidak berdiam disatu tempat untuk satu keperluan, namun cenderung mengerjakan banyak hal dibanyak tempat
- Cloud, tersedianya Teknologi awan (cloud) dimana saat ini sudah menjadi solusi murah untuk memiliki server data yang cerdas tanpa harus memilikinya secara fisik.
- kebutuhan Analisis dari software yang menyerupai analisa dari manusia, dimana kebutuhan ini dapat diselesaikan dengan Artificial Intelligent yang ditanamkan di software.
Pada poin ini saya menjelaskan bagaimana keadaan teknologi yang tersedia di dalam Control Sytem di area Industri. dimana teknologi Ethernet sudah mendominasi konektifitas dari semua device
Citect SCADA / Vijeo Citect to SQL With CiCode
Jika anda membutuhkan sebuah data logger dari Citect SCADA / vijeo citect ke SQL misal Ms SQL Server, atau anda ingin melalukan sejumlah sampling data dari Citect SCADA / Vijeo Citect ke database, berikut video solusinya:
Cara logging data Citect SCADA ke SQL, Citect to SQL
Modicon M580 – ePAC pertama
Modicon M580 Merupakan ePAC (Ethernet Process Automation Controller) yang di desain compact dan memenuhi kebutuhan untuk medium offer atau skala menengah di Proses Automation.
Fitur Utama: Integrated Distributed IO dan atau Integrated Distributed IO
Kapasitas CPU Discrete IO : 1024, 2048, 3072, 4096
Kelebihan lain:
Achieve a more productive and efficient process
By embedding standard unmodified Ethernet right into its core, Modicon M580 offers you more transparency, flexibility and openness so you can access the right production information at the right time, and achieve a more productive and efficient process.
Performant:
- Data management speed up to twice
- Timestamping less than 1 millisecond
Innovative:
- Open Ethernet backbone
- High-tech PAC
- High precision
- Safety designed for future
- Energy efficiency enabling
- Cyber secure built-in
Easy and flexible:
- Design your architecture without constraints
- Modify your process and architecture in run
- Diagnose remotly
- Reduce your development costs
Sustainable:
- Secure investments
Water Tank PLC Control Simulation with Matlab Simulink
httpvh://youtu.be/Uz827S7tjRU
To play this simulation you need to have this item:
- 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)
- Matlab 2012 / Matlab 2013 with simulink (I’m not provide the installer, you can find on another forum 6.5Gb)
- Modbus Ehternet OPC Server (Iconics) http://adf.ly/lA1Gt this is free OPC server, you don’t need to license the software
- Simulink Model, OPC Configuration(should be load from iconics modbus OPC Server) http://adf.ly/lA205
PLC – Unity Pro XL, Set up project and configuration
Unity Pro XL adalah software yang digunakan untuk programming & konfigurasi PLC Schneider.
PLC yang di dukung oleh Unity Pro XL antara lain:
- M340
- Modicon Quantum
- Modicon Premium
- M580
Pada jenis PLC tersebut tidak semua processor/CPU pada PLC tersebut didukung oleh Unity, ada beberapa CPU yang didukung oleh ProWorks atau PL7
fitur dari Unity Pro:
- 5 IEC61131-3 languages + Legacy LL984
- Integrated conversion tools dari software Concept, Proworks, PL7 Pro
- FDT / DTM standard, untuk integrasi dengan field device
- Customizable integrated Function Block Library (DFB)
- PLC simulator on PC, Built-in test and diagnostic
- Animation tables, Operator Screens and Trending Tool
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
ICONICS – GENESIS32 – HMI REVIEW
GENESIS32 merupakan produk HMI buatan dari ICONICS, Inc. yang seperti kebanyakan HMI lainnya yaitu untuk memudahkan engineer membuat aplikasi untuk memonitoring, mengendalikan, dan berkomunikasi pada alat/instrument atau controller atau pada komputer lainnya.
Pengukuran Flow Gas (AGA-3 & AGA-8)
AGA atau American Gas Association adalah sebuah asosiasi yang berkecimpung untuk standard, metode, dan kalkulasi dalam pengukuran Gas. berikut adalah algoritma yang dapat digunakan untuk melakukan perhitungan flow gas yang melewati Orifice.
Faulty Measurement Analysis
Faulty Measurment – atau Error in Measurement – Kesalahan Pengukuran
Adalah sebuah kesalahan dalam pengukuran dalam alat ukur (yang telah terkalibrasi) akibat faktor eksternal atau internal dari alat ukur itu sendiri. (yang kali ini akan dibahas untuk faktor eksternal, terutama pada power quality input)
Penyebab kesalahan pengukuran dapat terjadi dari berbagai sebab yaitu:
Internal :
- Nilai yang diukur diluar jangkauan alat (Out of range)
- Batasan alat (Device Limitation) misal: Input Voltage, Environment Temperature (Suhu Lingkungan), Humidity, dll
- Instrument Error (Alat ukur error/rusak)
External (Electricity):
- Noise Input Voltage (Spike Voltage)
- Harmonik
- Unstable Voltage
- Electromagnetic Interference (EMI) atau juga biasa disebut RFI (Radio Frequency Interference)
Pengklasifikasian tesebut (Internal dan Eksternal) merupakan klasifikasi berdasarkan input (Rifqi Imanto,2011)
Sedangkan berdasarkan paper “Error in Measurement” oleh Sunil Kumar Singh,2007 kesalahan pengukuran diklasifikasikan ditinjau dari output measurement sebagai Systematic Error dan Random Error. Dimana Systematic Error berelasi dengan Akurasi sedangkan Random Error berelasi dengan Presisi.
Systematic Error: Instrument Error, Procedural Error
Random Error: Least count error, Mean value error 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 |
Illegal |
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 |
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 |
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