Standards • Individuals • Proprietaries
What are templates?
Protocol templates are Lua scripts specifying how the continuous data stream is divided into single telegrams and how they are displayed to the user. This makes them widely adaptable to very special and uncommon protocols.
How do they work?
Every incoming data is passed to the template in real-time by an extrem fast Lua engine. Various functions help you to test every start/end condition. A mighty box mechanism let you display telegram fields as you like.
Can I write my own one?
Yes of course - that's the intention! The analyzer software provides you with all you need to create your very one template. Or you modify one of the many provided templates for your purpose. Read more
Mastering your protocol in more than one way
with features you don't want to miss when analyzing telegrams
Perfect for education
Play around with the Lua protocol definition and see your modifications immediately in the display and without any affection to the recorded data.Readable telegrams
Display the telegram content as it fit you best. Convert numbers, assign names, use colors. Imagine telegram fields changing their colors depending on their value.Individual filtering
Focus your analysis to the important parts. You decide which telegram you want to see.Validate your checksum
Calculate, verify and handle even individual checksums. Use the integrated functions for CRC, LRC or write your own checksum algorithm with Lua.Many ways to export data
Document your results in text applications or process your data in Excel ®, Open Office Calc and similars. Share your results with others.BASE16 Decorder
Hex ASCII sequences (e.g. Modbus ASCII) to binary
Number Converter
Little/Big Endian data bytes to integer, floating point values
Checksum Validator
CRC16 for Modbus, DNP3, CCiTT Kermit, BACnet, CRC8 BACnet, LRC
Date & Time Formater
Absolute, local and relative time and date display
Various Lua extensions
help you to convert telegram data from different coding formats like Base16, transform number sequences (little Endian, big Endian), output date/time and more...Available templates
The following templates are already part of the analyzer software. Future templates will be listed here for free download.
- 3964(R)
-
A standardized serial Point-To-Point protocol, commonly used between two PLC (SPS). It is a Master-Master protocol and comes in two variants: 3964 without checksum and 3964R using a CRC checksum. The analyzer supports both.
- BACNet
-
A full-duplex protocol for building automation and control networks, standardized by ASHRAE, ANSI and ISO 16484-5. The analyzer supports PTP (Point-To-Point) over RS-232 and MS/TP (Master-Slave/Token-Passing over RS-485).
- Common 9-Bit
-
A general template for protocols with a 9-Bit start (address) field. It can be used as a start for typical Multi-Drop protocols.
- DF-1
-
The Allen-Bradley DF1 protocol is a major industrial serial protocol supported by a large number of devices, both those built by Allen-Bradley and other companies. It supports full-duplex peer-to-peer as well as half-duplex master-slave communications and consists of link layer and application layer formats.
- DNP3
-
DNP3 (Distributed Network Protocol) is used between components in the process automation field, especially electric and water companies. Telegrams are defined as a fixed length header block followed by optional data blocks. Each block ends with a 16-bit CRC.
- MDB/ICP
-
MDB is a serial bus protocol for electronically controlled vending machines. The interface is a 9600 baud Master-Slave arrangement where all peripherals are Slaves to a Master controller.
- IEC60870-5-101
-
IEC 60870-5 refers to a collection of standards produced by the International Electrotechnical Commission, or IEC, to provide an open standard for the transmission of SCADA telemetry control and information. The protocol internal settings specify a varying information object address (IOA), different length of the common address (ASDU) and an optional originator field (COT). The analyzer supports all variants.
- Modbus
-
Modbus is a multidrop network based communication protocol for master/client architecture. Originally published by Modicon (now Schneider electric) in 1979 is has become a de facto standard for its simplicity and robustness. Serial Modbus connections can use two basic transmission modes: ASCII and RTU. In RTU telegrams are separated by a specifiy time gap of 3.5 characters. The analyzer supports both.
- Profibus
-
Profibus is a fieldbus communication standard first promoted in 1989 by the German department of education and research (BMBF) and then used by Siemens. A Profibus system uses a bus master to cyclically poll slave devices distributed in multi-drop fashion on a RS485 serial bus. Slaves are not allowed to send data without request by the master. As like in Modbus telegrams are separated by a specified time gap (sending or sync pause) of 33 bits.
- SAE-J1587
-
SAE-J1587 is an automotive diagnostic protocol standard developed by the Society of Automotive Engineers (SAE) for heavy-duty and most medium-duty vehicles built after 1985.
- SAE-J1922
-
The SAE-J1922 protocol is a standard for
Powertrain Control Interface for Electronic Controls Used in Medium- and Heavy-Duty Diesel On-Highway Vehicle Applications
.This template was designed to help reverse engineer the communication between the EM2000 and the EMDEC on a SD70 locomotive. The hardware is likely J1708 which is based on RS485 but without any terminating resistors. It is far from perfection!
- SMA-NET
-
The SMA-Net is a proprietary protocol developed by SMA, one of the largest manufacturers of photovoltaic inverters in the world. It is compatible inter alia with TCP/IP, PPP and HDLC. Telegrams starts and ends with hex 7E which has to escaped when occuring in the data payload.
- USS
-
The USS protocol (Universal Serial Interface Protocol) defines an access technique according to the master-slave principle for communications via a serial bus. One master and a maximum of 31 slaves can be connected to the bus. The individual slaves are selected by the master via an address character in the telegram.
Not listed? - write your own one!
What's necessary
Every template has to provide at least the two functions split() and out()
The first one divides the incoming data stream into single telegrams.
The second function controls the appearance of the splitted telegrams.
Split the telegrams
is easy. Every receiving byte is passed to the split() function with all information you need to evaluate the start or end of a telegram. Depending on the result you just have to return STARTED, MODIFIED or COMPLETED. Show/Hide example!
Display the telegrams
is handled by the second function. Designed for maximum speed, out() is called every time a telegram must be rendered by the program for display. In it you can access all telegram data, process it according to your ideas and order the result in colored boxes with any content. Show/Hide example!
Further information
Learn more
The comprehensive manual explains all aspects of writing templates, including how to export and filter individual protocols.
Try it out
Download the analyzer software and play with the provided protocol templates. It's free and works without a connected device.
Ask for support
We like to add new protocols. Do you have a standard protocol not listen here? Just let us know and we may be able to write it for you.
Recommended tools
We are often asked how to simulate telegrams. Here are some free tools which may already provide you a solution.