Page 1
Operating Instructions CM4 Serial Communication Protocol...
Page 2
Honeywell Analytics grants to the user, in exchange and in consideration for applicable fees, a license for the use of the CM4 protocol, the right to use and the CM4 protocol definition of which is supplied to you in a separate document.
Honeywell Analytics CM4 Protocol Manual Contents Introduction Overview Glossary Communication Port Set up Procedure Protocol Specifics Data and Packets Checksum (Check Character) ACK/NAK Handshake Protocol Packet Definition Packet Format Start Code Receiver Address Transmitter Address Length Command Data Checksum Date Format...
Page 4
Honeywell Analytics CM4 Protocol Manual Get K-Factor - 0x3E Get Pyrolyzer Temperatures - 0x42 Get Pump Limits - 0x43 Get Filter Life - 0x44 Get Floating Status - 0x45 Get One Alarm - 0x47 Configuration Set K-Factor - 0x50 30...
Page 5
Honeywell Analytics CM4 Protocol Manual v ii Rev. 2.4 (3/05)
1200, 2400, 4800, 9600, and 19,200. Additional port settings are 8-bit, 1 stop bit, and no parity. The slave is identified by an address programmed into the CM4 monitor (selectable 1-255). If more than one CM4 monitor is used, each must have a unique address.
A packet is made from many bytes of information. Protocol: The manner in which data is transferred and the format used for the transfer. CM4 protocol refers to the packets of transferred data the CM4 instrument recognizes. Slave: The MDA Scientific CM4 gas monitor. A network may have several slaves.
CM4 Protocol Manual Communication Port Access to the CM4 protocol is through the COM port. This port is a DB-9 female connector. This port is designed for bidirectional communications between the CM4 instrument and your equipment. Signals present at the port conform to RS-232, RS-422, or RS-485 specifications.
Honeywell Analytics CM4 Protocol Manual Set up Procedure After the networking cabling has been connected to the slave, the slave must be configured to communicate. Baud rate, address, and protocol version are selectable. Configuration is performed with the following sequence: <PROGRAM>...
Honeywell Analytics CM4 Protocol Manual Protocol Specifics The protocol has been designed for flexibility and efficiency. This byte-wise protocol communicates information by transferring bytes of data back and forth between master and slave. A group of bytes for each communication is called a packet.
If all the data bytes are added together and this sum made into a byte, that byte could be called a check character, or more commonly referred to as a checksum. For the CM4 instrument, the checksum is the negated sum of all the bytes in the packet.
Honeywell Analytics CM4 Protocol Manual ACK/NAK Handshake Each slave (CM4) uses a handshake scheme between itself and the master. The simplest response back from the instrument is called an ACK (an abbreviation for ACKnowledge). When the slave receives a command packet...
CM4 Protocol Manual Protocol Packet Definition Packet Format Two similar protocols are supported by CM4 software. The original protocol with a minimum packet length of five bytes is included for compatibility with previous software. Additionally, a new protocol with a minimum packet length of six bytes is included for greater robustness.
Honeywell Analytics CM4 Protocol Manual Generic Data Formats Date Format 2 bytes Year: (7 bits) Month: (4 bits) Day: (5 bits) Year is based from 1980. 1989 would be 89 - 80 = 9. Time Format 2 bytes Hours: (5 bits)
CM4 Protocol Manual Generic Responses The CM4 monitor will return generic responses to the equipment if there is not a specific response defined, or if there is a problem in the communication transactions. There are four generic responses. Each of these response packets are 5 bytes, and contain only the start byte, address, length command code, and checksum.
Command packet to instrument: Command Code (0x31) - 1 byte Response packet from instrument: Command Code (0x31) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes General Status - 2 bytes bit 0: Current Operating mode...
Page 18
Honeywell Analytics CM4 Protocol Manual (Get Unit Status bit 13: Relay state 0x31, continued) 0 = De-energized 1 = Energized bit 14: Relay Latching state 0 = Non-latching 1 = Latching bit 15: Alarm Simulation state 0 = Unit not in alarm...
Page 19
Honeywell Analytics CM4 Protocol Manual (Get Unit Status Optics Cal Status - 1 byte 0x31, continued) bit 0: Optics have been calibrated 0 = Not Tested 1 = Tested bits 1-4: Optics test results 0x01 = Passed optics 1 0x02 = Passed optics 2...
Command Code (0x34) - 1 byte Response packet from instrument: Command Code (0x34) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Last Power Down Date - 2 bytes Last Power Down Time - 2 bytes...
11 = Point 4 bits 2-7: Undefined Response packet from instrument: Command Code (0x35) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Point Status Flag - 1 byte bit 0: Point Enable/Disable bit 0 = Disabled...
CM4 Time - 2 bytes # of Alarms - 1 byte (alarm data, up to 16 possible) CM4 Date of Alarm - 2 bytes CM4 Time of Alarm - 2 bytes Gas Abbr. 6 bytes Point # - 1 byte...
11 = Point 4 bits 2-7: Undefined Response Packet from instrument: Command Code (0x37) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes (If point is Disabled/Invalid/Locked out, fill with zeroes) MDA Gas Abbr. - 6 bytes (not null terminated)
Command packet to instrument: Command Code (0x3A) - 1 byte Response packet: Command Code (0x3A) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes # of Gas Tables - 1 byte (1-255) Get Printer This command queries the unit for the printer Setup configuration.
Gas to table to retrieve - 1 byte (0-255) Response packet from instrument: Command Code (0x3C) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes (filled with zeroes if error) MDA Gas Abbr. - 6 bytes (not null...
Page 30
Temperatures four pyrolyzers, in integer degrees Celsius the 0x42 slave’s internal temperature. This is applies to a model CM4-P only and not to an ordinary CM4. Command Packet to slave: Command code (0x42) - 1 byte Response from slave: Command code (0x42) - 1 byte...
Page 31
Command Packet to slave: Command code (0x44) - 1 byte Response from slave: Command code (0x44) - 1 byte CM4 date - 2 bytes CM4 time - 2 bytes Internal filter life - 2 bytes External filter life - 2 bytes Status - 1 byte (alway Rev.
Page 32
Command Packet to Slave: Command code (0x45) - 1 byte Response from Slave: Command code (0x45) - 1 byte CM4 date - 2 bytes CM4 time - 2 bytes Status - 1 byte 0x01 - in monitor 0x02 - maintenance fault relay...
Page 34
Command packet to slave: Command Code (0x47) - 1 byte Response packet from slave Command Code (0x47) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Alarm Date - 2 bytes Alarm Time - 2 bytes...
Page 35
Honeywell Analytics CM4 Protocol Manual Configuration These are the commands and responses that the and Directive CM4 system will support for remote control and Commands configuration. Set K-Factor This command configures the manual K-Factor 0x50 for a specific point. An individual point is given a K-Factor times 1000.
Page 36
0x04 = Point 3 alarms 0x08 = Point 4 alarms 0x10 = Faults Response packet from instrument: Command Code (0x51) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Alarms reset 0xff = Error...
Page 37
(bit 0). This configures the keypad and a new key code. The old key code must match the code currently programmed into the CM4 monitor for this command to succeed in changing the code. Command packet to instrument:...
Page 38
1-7: Undefined Key code - 2 bytes (valid 0000-9999) Response packet from instrument: Command Code (0x53) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status -1 byte 0x00 = Saved and verified 0x01 = Key code invalid...
Page 39
1 = Put in Monitor or pull window bits 1-7: Undefined Response packet from instrument: Command Code (0x55) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Request Executed 0xff = Error...
Page 40
1 = Enabled bit 7: Undefined Response packet from instrument: Command Code (0x57) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status Flag - 1 byte 0x00 = Printer programmed 0x01 = Invalid report format 0xff = Printer programming error Rev.
Page 41
0x08 = point 4 enabled bits 4-7: Undefined Response packet from instrument: Command Code (0x58) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Point enable updated and verified 0xff = Error, not saved...
Page 42
20 mA Full Scale - 2 bytes Point ID - 20 bytes Response packet from instrument: Command Code (0x59) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Point configured and...
Page 43
Command Code (0x5A) - 1 byte TWA Time - 2 bytes Command Code (0x5A) - 1 byte CM4 Date -2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Value saved and verified 0x01 = Hours Invalid...
Page 44
Idle Time - 1 byte (0 disabled, 1-45 minutes) Response packet from instrument: Command Code (0x5C) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = Value saved and verified 0x01 = Value > 45...
Page 45
This command allows you to configure the unit to Time 0x5E a new time and date. Use this feature to synchronize the time and date between the remote equipment and multiple CM4 monitors. Command packet to instrument: Command Code (0x5E) - 1 byte New Date - 2 bytes...
Page 46
1 = Latching bits 2-7: Undefined Response packet from instrument: Command Code (0x5F) - 1 byte CM4 Date - 2 bytes CM4 Time - 2 bytes Status - 1 byte 0x00 = relays state set 0xff = Error, relays state not changed Rev.
Page 48
This command saves a backup copy of the Configuration current configuration to nonvolatile memory in the 0x62 CM4 monitor. This configuration can be restored using the Restore Configuration command. Command packet to instrument: Command Code (0x62) - 1 byte Response packet from instrument:...
Page 49
4-7 unused (ignored by slave) Minimum window time (seconds) - 2 bytes Response from slave: Command code (0x65) - byte CM4 date 2 bytes CM4 time 2 bytes Status - 1 byte 0x00 packet accepted 0x01 time > 900 seconds, unacceptable 0x02 time <...
Page 51
During periods when the tape is saturated but prevented from advancing, the CM4 will continue to report the most recent concentration reading. Unfortunately it will not be able to detect any changes in concentration during this period because the tape is saturated.
Page 52
Your CM4 instrument will accept and process commands sent to it from your equipment. Responses The CM4 instrument will send a return communication for any message it receives at its address. Included in most response packets from the CM4 instrument are date and time stamps.
Page 53
Honeywell Analytics CM4 Protocol Manual Example Packets The following section contains examples of packets from a master to a slave and the slave’s responses. Protocol version 2 is used. The address of the slave is 1. All numbers are in hexadecimal.
Page 54
Honeywell Analytics CM4 Protocol Manual Example Packets (continued) The following section contains examples of packets from a master to a slave and the slave’s responses. Protocol version 1 is used. Master 40 01 05 28 92 Slave 40 00 05 20 9B...