MODBUS & CANBUS Presented to: Engineering Deptt . SEPL Presented by: ALI RAZA MUHAMMAD FAIZAN SALEEM Presentation # 7 1
Contents Introduction of MODBUS Master Slave Configuration MODBUS RTU Data Storing MODBUS RTU Frame MODBUS TCP/IP CAN history Benefits of CAN Electrical States CAN Frame Application of CAN bus 2
Open Systems Interconnection (OSI) Model C onceptual and logical layout that defines network communication used by systems open to interconnection and communication with other systems. 3
MODBUS Introduction Serial communication protocol developed by Modicon published by Modicon in 1979 for use with its PLCs MODBUS is an open protocol The protocol describes how information is received, how queries are responded. In simple terms, it is a method used for transmitting information over serial lines between electronic devices. 4
Master Slave Communication MODBUS provides master-slave communication between intelligent devices U sed to transmit signals from instrumentation and control devices back to a main controller. 5
MODBUS Types The three most common Modbus types used today are as follows : Modbus RTU (based on serial communication like RS485 and RS232) Modbus/TCP( Transmission Control Protocol) (based on Ethernet communication) Modbus ASCII 6
MODBUS RTU Modbus RTU, data is coded in binary and requires only one communication byte per data byte. Modbus RTU is the most widely used industrial protocol This is ideal for use over RS232 or multi-drop RS485 networks, at speeds from 1,200 to 115K baud. The most common speeds are 9,600 and 19,200 baud. 7
Data S tored in Modbus Information is stored in the Slave device in four different tables . Two tables store on/off discrete values (coils) T wo store numerical values (registers). The coils and registers each have a read-only table and read-write table . Each table has 9999 values Each coil or contact is 1 bit and assigned a data address between 0000 and 270E. Each register is 1 word = 16 bits = 2 bytes and also has data address between 0000 and270E. 8
Data Stored in Modbus Each register is 1 word = 16 bits = 2 bytes and also has data address between 0000 and270E . 9
MODBUS RTU Fundamentals To enable communication with a slave device, the master must send a message or query containing following framing:- Device Address Function Code Data Error Check 10 Silence >= 3,5 characters
MODBUS Frame Structure Device Address Request : A master addresses a slave by placing the slave address in the address field of the massage. Response : when the slave sends its response it places its own address in the address field of the massage. The Device Address is a number from 0 to 247. Messages sent to address 0 ( broadcast messages ) can be accepted by all slaves The individual slave devices are assigned addresses in the range of 1 to 247. 11
MODBUS Frame Structure Function Code The Function Code defines the command that the slave device is to execute, such as read data , accept data, report status, etc . Function codes are 1 to 255. Some function codes have sub-function codes 12
MODBUS Frame Structure Data Request : Data field contains the additional information which the slave must use to take the action defined by the functional code. This can include the items like registers , addresses quantity of the items to be handled.. etc Response : If no error occurs , the data field contains the data requested Valid codes in the range of 0 to 255 decimals 13
MODBUS Frame Structure Error Check CRC(Cyclic Redundancy check) : Error Check is a 16-bit numeric value representing the Cyclic Redundancy Check ( CRC). 16-bit numeric value representing the Cyclic Redundancy Check ( CRC) The CRC is generated by the master and checked by the receiving device. If the CRC values do not match, the device asks for a retransmission of the message. In some systems, a parity check can also be applied 14
MODBUS RTU Frame Structure 15
MODBUS Frame Structure Request This command is requesting the ON/OFF status of discrete coils # 20 to 56 from the slave device with address 17. 11 01 0013 0025 0E84 11: The Slave Address (11 hex = address17 ) 01: The Function Code 1 (read Coil Status) 0013: The Data Address of the first coil to read. ( 0013 hex = 19 , + 1 offset = coil #20 ) 0025: The total number of coils requested. (25 hex = 37, inputs 20 to 56 ) 0E84: The CRC (cyclic redundancy check) for error checking. 16
Response 11 01 05 CD6BB20E1B 45E6 11: The Slave Address (11 hex = address17 ) 01: The Function Code 1 (read Coil Status) 05: The number of data bytes to follow (37 Coils / 8 bits per byte = 5 bytes) CD: Coils 27 - 20 (1100 1101) 6B: Coils 35 - 28 (0110 1011) B2: Coils 43 - 36 (1011 0010) 0E: Coils 51 - 44 (0000 1110) 1B: 3 space holders & Coils 56 - 52 (0001 1011) 45E6: The CRC (cyclic redundancy check). 17
MODBUS TCP/IP It is also a world-wide standard that serves as the foundation for the World Wide Web. The primary function of TCP is to ensure that all packets of data are received correctly IP makes sure that messages are correctly addressed and routed Modbus TCP/IP uses TCP/IP and Ethernet to carry the data of the Modbus message structure between devices 18
CONSTRUCTION OF A MODBUS TCP/IP DATA PACKET Modbus TCP/IP Application Data Unit (ADU) takes the form of a 7 byte header and the protocol data unit 19
MODBUS TCP/IP This is a Modbus variant used for communications over TCP/IP networks, connecting over port 502 . It does not require a checksum calculation as lower layers already provide checksum protection . Modbus TCP/IP uses TCP and Ethernet 10 Mbit/s or 100 Mbits/s to carry the MODBUS messaging structure 20
CAN History In 1985 Bosch originally developed CAN, a high-integrity serial bus system for networking intelligent devices, to replace automotive point-to-point wiring systems. As vehicle electronics became pervasive, complex wire harnesses which were heavy, expensive and bulky were replaced with CAN throughout the automotive industry . In 1993 CAN became the international standard known as ISO 11898. Since 1994 , several widely used higher-level protocols have been standardized on top of CAN, such as CanOpen and DeviceNet . 21
22 CAN Open Systems Interconnect (OSI) Model
Benefits of CAN bus Low-Cost, Lightweight Network Broadcast Communication Priority Error Capabilities 23
Electrical States Recessive In the recessive state, no node (CAN device) drives the bus. Since both ends of the long cable are terminated (120ohm resistors across each end), the voltage across the differential pair quickly falls to zero. Dominant In the dominant state, one end of the differential pair, called CANL, is pulled low, while the other end, CANH, is pulled high (generally 5V or 3.3V). Naturally this overrides the recessive state, and this the name. 24
Explanation of Recessive and Dominant 25
Electrical States Bits on the bus E ach bit has a certain time on the bus before the next one’s turn. The bit rate can vary, but 1Mbit is common (1µs per bit ). Idle When no nodes are transmitting, the bus is idle. This is the recessive state. A transmission starts when a node asserts a dominant state on the bus. The first bit is the SOF (start of frame ) bit. 26
CAN F rame Everything in CAN is sent in a frame (or message). This is essentially a packet. It consists of the sender’s unique ID, some flags, some data, and a CRC . Standard (11-bit ID) frames 27
Can Frame SOF bit The CAN DATA frame starts with the SOF – start of frame – bit. This is analogous to the start bit in RS-232 style asynchronous serial. It is the bit require to transition from idle to non-idle. The SOF bit is a logic 0 (dominant ). Identifier - The Standard CAN 11-bit identifier establishes the priority of the message. The lower the binary value, the higher its priority. 28
Can Frame RTR ( remote transmission request) is a single bit that indicates if this is a DATA frame (0, dominant) or a REMOTE frame (1, recessive) . IDE (Identifier Extension) A dominant single identifier extension (IDE) bit means that a standard CAN identifier with no extension is being transmitted. 29
Can Frame r0 Reserved bit (for possible use by future standard amendment ). DLC field (4 bits) The DLC – data length code – field indicates how many bytes of data this frame will contain (0-8 ). CRC ( cyclic redundancy check ) field (15 bits) This 15-bit CRC is used to check for any errors in the received data. 30
Can Frame ACK (Acknowledge) Every node receiving an accurate message overwrites this recessive bit in the original message with a dominate bit, indicating an error-free message has been sent . END of Frame (7 bits) The END of frame is simply a sequence of 7 recessive bits. This provides padding so that a recently attached device can tell that the frame has ended. 31
Can Frame IFS This 7-bit interframe space (IFS) contains the time required by the controller to move a correctly received frame to its proper position in a message buffer area. 32
Vehicles Before CAN: Expensive, bulky point to point wiring, wiring harnesses and many connectors. Vehicles After CAN: Systems of Systems with multiple CAN busses, simplified wiring harnesses and many Fewer connectors Before CAN After CAN 33