Difference between revisions of "Protocols - Overview"

From Serious Documentation
Jump to: navigation, search
Line 6: Line 6:
 
=== {{Protocol|Raw|Raw Protocol}} ===
 
=== {{Protocol|Raw|Raw Protocol}} ===
 
The {{Protocol|Raw}} was made available starting in SHIP v5.0.126 {{v5}}, and enables simple movement of the following data types:
 
The {{Protocol|Raw}} was made available starting in SHIP v5.0.126 {{v5}}, and enables simple movement of the following data types:
* Boolean (as Byte 0x00 or 0x01)
+
* {{DataType|Boolean}} (as Byte 0x00 or !0x01)
* Byte
+
* {{DataType|Byte}}{{†}}
* Short (16-bit)
+
* {{DataType|Short}} (16-bit)
* Integer (32-bit)
+
* {{DataType|Integer}} (32-bit)
* Float (single precision, 32-bit)
+
* {{DataType|Float}} (single precision, 32-bit)
* String (null terminated)
+
* {{DataType|String}} (null terminated)
 
 
 
There is no packetization, framing, or checksums/CRC calculations performed on the data.  The protocol, therefore, is very simple to interpret and generate on an attached device, however is susceptible to errors and misalignment over time and should only be used in some applications.
 
There is no packetization, framing, or checksums/CRC calculations performed on the data.  The protocol, therefore, is very simple to interpret and generate on an attached device, however is susceptible to errors and misalignment over time and should only be used in some applications.
  
Line 24: Line 23:
 
In all SHIP Modbus protocols, the following [[SHIP:Data_Types|data types]] are supported:
 
In all SHIP Modbus protocols, the following [[SHIP:Data_Types|data types]] are supported:
 
* {{DataType|Boolean}}
 
* {{DataType|Boolean}}
* {{DataType|Byte}}{{†}}{{v5}} via the Daniel Extension
+
* {{DataType|Byte}}{{†}} via the Daniel Extension {{v5}}
 
* {{DataType|Short}}
 
* {{DataType|Short}}
* {{DataType|Integer}}{{†}}{{v5}} via the Daniel Extension
+
* {{DataType|Integer}}{{†}} via the Daniel Extension {{v5}}
* {{DataType|Float}}{{†}}{{v5}} via the Daniel Extension
+
* {{DataType|Float}}{{†}} via the Daniel Extension {{v5}}
* {{DataType|String}}{{†}}{{v5}} via a custom Function
+
* {{DataType|String}}{{†}} via a custom Function {{v5}}
 
 
 
{{†}} Starting with SHIP v5.0.126
 
{{†}} Starting with SHIP v5.0.126
  

Revision as of 05:00, 22 September 2014

A Protocol describes the packetization and method for moving data back and forth across that physical layer. SHIP supports three protocols, though not all protocols are supported across all available physical layers on a SIM:

Raw Protocol

The Raw protocol was made available starting in SHIP v5.0.126 Badge SHIPv5.gif, and enables simple movement of the following data types:

There is no packetization, framing, or checksums/CRC calculations performed on the data. The protocol, therefore, is very simple to interpret and generate on an attached device, however is susceptible to errors and misalignment over time and should only be used in some applications.

Resources:

The Modbus Protocol

Visit the Modbus documentation page for more Modbus resources, technical information, and software.

In all SHIP Modbus protocols, the following data types are supported:

Starting with SHIP v5.0.126

Note that all values are transported as big Endian, however all values within the SHIP Sail scripting and virtual machine environment are little Endian, regardless of the underlying MCU on the SIM.

The following four Modbus protocol sub-protocols are supported:

  • Master RTU
  • Master ASCII
  • Slave RTU
  • Slave ASCII

Bridge Protocol