13.1 Open Network Types
Devicenet has become one of the most widely supported control networks. It is an open standard, so components from a variety of manufacturers can be used together in the same control system. It is supported and promoted by the Open Devicenet Vendors Association (ODVA) (see http://www.odva.org). This group includes members from all of the major controls manufacturers.
This network has been designed to be noise resistant and robust. One major change for the control engineer is that the PLC chassis can be eliminated and the network can be connected directly to the sensors and actuators. This will reduce the total amount of wiring by moving I/O points closer to the application point. This can also simplify the connection of complex devices, such as HMIs. Two way communications inputs and outputs allow diagnosis of network problems from the main controller.
Devicenet covers all seven layers of the OSI standard. The protocol has a limited number of network address, with very small data packets. But this also helps limit network traffic and ensure responsiveness. The length of the network cables will limit the maximum speed of the network. The basic features of are listed below.
An example of a Devicenet network is shown in Figure 22.16. The dark black lines are the network cable. Terminators are required at the ends of the network cable to reduce electrical noise. In this case the PC would probably be running some sort of software based PLC program. The computer would have a card that can communicate with Devicenet devices. The ’FlexIO rack’ is a miniature rack that can hold various types of input and output modules. Power taps (or tees) split the signal to small side branches. In this case one of the taps connects a power supply, to provide the 24Vdc supply to the network. Another two taps are used to connect a ’smart sensor’ and another ’FlexIO rack’. The ’Smart sensor’ uses power from the network, and contains enough logic so that it is one node on the network. The network uses ’thin trunk line’ and ’thick trunk line’ which may limit network performance.
The network cable is important for delivering power and data. Figure 22.17 shows a basic cable with two wires for data and two wires for the power. The cable is also shielded to reduce the effects of electrical noise. The two basic types are thick and thin trunk line. The cables may come with a variety of connections to devices.
If a PLC-5 was to be connected to Devicenet a scanner card would need to be placed in the rack. The ladder logic in Figure 22.18 would communicate with the sensors through a scanner card in slot 3. The read and write blocks would read and write the Devicenet input values to integer memory from ’N7:40’ to ’N7:59’. The outputs would be copied from the integer memory between ’N7:20’ to ’N7:39’. The ladder logic to process inputs and outputs would need to examine and set bits in integer memory.
On an Allen Bradley Softlogix PLC the I/O will be copied into blocks of integer memory. These blocks are selected by the user in setup software. The ladder logic would then using integer memory for inputs and outputs, as shown in Figure 22.19. Here the inputs are copied into N9 integer memory, and the outputs are set by copying the N10 block of memory back to the outputs.
The CANbus (Controller Area Network bus) standard is part of the Devicenet standard. Integrated circuits are now sold by many of the major vendors (Motorola, Intel, etc.) that support some, or all, of the standard on a single chip. This section will discuss many of the technical details of the standard.
CANbus covers the first two layers of the OSI model. The network has a bus topology and uses bit wise resolution for collisions on the network (i.e., the lower the network identifier, the higher the priority for sending). A data frame is shown in Figure 22.20. The frame is like a long serial byte, like that seen in Figure 22.3. The frame begins with a start bit. This is then followed with a message identifier. For Devicenet this is a 5 bit address code (for up to 64 nodes) and a 6 bit command code. The ’ready to receive it’ bit will be set by the receiving machine. (Note: both the sender and listener share the same wire.) If the receiving machine does not set this bit the remainder of the message is aborted, and the message is resent later. While sending the first few bits, the sender monitors the bits to ensure that the bits send are heard the same way. If the bits do not agree, then another node on the network has tried to write a message at the same time - there was a collision. The two devices then wait a period of time, based on their identifier and then start to resend. The second node will then detect the message, and wait until it is done. The next 6 bits indicate the number of bytes to be sent, from 0 to 8. This is followed by two sets of bits for CRC (Cyclic Redundancy Check) error checking, this is a checksum of earlier bits. The next bit ’ACK slot’ is set by the receiving node if the data was received correctly. If there was a CRC error this bit would not be set, and the message would be resent. The remaining bits end the transmission. The ’end of frame’ bits are equivalent to stop bits. There must be a delay of at least 3 bits before the next message begins.
Because of the bitwise arbitration, the address with the lowest identifier will get the highest priority, and be able to send messages faster when there is a conflict. As a result the controller is normally put at address ’0’. And, lower priority devices are put near the end of the address range.
Controlnet is complimentary to Devicenet. It is also supported by a consortium of companies, (http://www.controlnet.org) and it conducts some projects in cooperation with the Devicenet group. The standard is designed for communication between controllers, and permits more complex messages than Devicenet. It is not suitable for communication with individual sensors and actuators, or with devices off the factory floor.
This control network is unique because it supports a real-time messaging scheme called Concurrent Time Domain Multiple Access (CTDMA). The network has a scheduled (high priority) and unscheduled (low priority) update. When collisions are detected, the system will wait a time of at least 2ms, for unscheduled messages. But, scheduled messages will be passed sooner, during a special time window.
13.2 Proprietary Networks
Allen-Bradley has developed the Data Highway II (DH+) network for passing data and programs between PLCs and to computers. This bus network allows up to 64 PLCs to be connected with a single twisted pair in a shielded cable. Token passing is used to control traffic on the network. Computers can also be connected to the DH+ network, with a network card to download programs and monitor the PLC. The network will support data rates of 57.6Kbps and 230 Kbps
The DH+ basic data frame is shown in Figure 22.22. The frame is byte oriented. The first byte is the ’DLE’ or delimiter byte, which is always $10. When this byte is received the PLC will interpret the next byte as a command. The ’SOH’ identifies the message as a DH+ message. The next byte indicates the destination station - each node one the network must have a unique number. This is followed by the ’DLE’ and ’STX’ bytes that identify the start of the data. The data follows, and its’ length is determined by the command type - this will be discussed later. This is then followed by a ’DLE’ and ’ETX’ pair that mark the end of the message. The last byte transmitted is a checksum to determine the correctness of the message.
The general structure for the data is shown in Figure 22.23. This packet will change for different commands. The first two bytes indicate the destination, ’DST’, and source, ’SRC’, for the message. The next byte is the command, ’CMD’, which will determine the action to be taken. Sometimes, the function, ’FNC’, will be needed to modify the command. The transaction, ’TNS’, field is a unique message identifier. The two address, ’ADDR’, bytes identify a target memory location. The ’DATA’ fields contain the information to be passed. Finally, the ’SIZE’ of the data field is transmitted.
Examples of commands are shown in Figure 22.24. These focus on moving memory and status information between the PLC, and remote programming software, and other PLCs. More details can be found in the Allen-Bradley DH+ manuals.
The ladder logic in Figure 22.25 can be used to copy data from the memory of one PLC to another. Unlike other networking schemes, there are no ’login’ procedures. In this example the first MSG instruction will write the message from the local memory ’N7:20’ - ’N7:39’ to the remote PLC-5 (node 2) into its memory from ’N7:40’ to ’N7:59’. The second ’MSG’ instruction will copy the memory from the remote PLC-5 memory ’N7:40’ to ’N7:59’ to the remote PLC-5 memory ’N7:20’ to ’N7:39’. This transfer will require many scans of ladder logic, so the ’EN’ bits will prevent a read or write instruction from restarting until the previous ’MSG’ instruction is complete.
13.3 Practice Problems
ans. These networks allow us to pass data between devices so that individually controlled systems can be integrated into a more complex manufacturing facility. An example might be a serial connection to a PLC so that SPC data can be collected as product is made, or recipes downloaded as they are needed.
2. We will use a PLC to control a cereal box filling machine. For single runs the quantities of cereal types are controlled using timers. There are 6 different timers that control flow, and these result in different ratios of product. The values for the timer presets will be downloaded from another PLC using the DH+ network. Write the ladder logic for the PLC.
3. a) We are developing ladder logic for an oven to be used in a baking facility. A PLC is controlling the temperature of an oven using an analog voltage output. The oven must be started with a push button and can be stopped at any time with a stop push button. A recipe is used to control the times at each temperature (this is written into the PLC memory by another PLC). When idle, the output voltage should be 0V, and during heating the output voltages, in sequence, are 5V, 7.5V, 9V. The timer preset values, in sequence, are in N7:0, N7:1, N7:2. When the oven is on, a value of 1 should be stored in N7:3, and when the oven is off, a value of 0 should be stored in N7:3. Draw a state diagram and write the ladder logic for this station.
b) We are using a PLC as a master controller in a baking facility. It will update recipes in remote PLCs using DH+. The master station is #1, the remote stations are #2 and #3. When an operator pushes one of three buttons, it will change the recipes in two remote PLCs if both of the remote PLCs are idle. While the remote PLCs are running they will change words in their internal memories (N7:3=0 means idle and N7:3=1 means active). The new recipe values will be written to the remote PLCs using DH+. The table below shows the values for each PLC. Write the ladder logic for the master controller.
(ans. the maximum transfer rate is 230 Kbps, with 11 bits per byte (1start+8data+2+stop) for 20909 bytes per second. Each memory write packet contains 17 overhead bytes, and as many as 2000 data bytes. Therefore as many as 20909*2000/(2000+17) = 20732 bytes could be transmitted per second. Note that this is ideal, the actual maximum rates would be actually be a fraction of this value.)
13.4 Laboratory - Devicenet
In previous coursework you have used PLC-5 processors. The software based PLC is very similar. The most noticeable difference is that Inputs and Outputs will appear in integer memory instead of the normal I:1 and O:0 blocks of memory.
13.5 Tutorial - SoftPLC and Devicenet
Objective: By the end of this tutorial you should be able to do the major steps required to connect a devicenet network and program a SoftPLC to control it. It will end with the connection and programming of a Panelview 550 display.
1. Gather the components below. These will be used to build the Devicenet for the rest of the tutorial. When finding components the labels on the back are a good source of information. The information on the front of the devices is not normally useful.
3. Start the “RS Networx for Devicenet” software. When it starts it might show a diagram of previously programmed devices on the network. We need to get a current list of devices on the network. To do this pick “Selection” “Online”. This will scan the devices on the network and get their current configurations. After this the diagram on the screen will be current.
4. Next, we want to map the data from each of the Devicenet nodes to a location in the SoftPLC memory. Double click on the PCIDS card on the screen. Click on the “scanlist” tab (you may have to upload parameters). Make sure that all of the devices appear on the scanlist. Use the “Input” and “Output” tabs to map these devices to specific input and output memory. Notice that this is organized in words (16bits). You will want to make a note of these values, because you will use these when programming the PLC. When done select “Apply” and then “OK”. Exit the program and save the changes. At this point a file has been set up that tells the SoftPLC what devices are on the Devicenet, and what to do with them.
5. Move the pointer to the bottom right of the screen. You will see a black dot near the time. Click twice on this (Note: when the SoftPLC is running this will be green). A screen entitled “Softlogix 5 Status Monitor” will popup. Click on “Config” and then “Start SoftLogix 5”. The SoftPLC should now be running. Click “OK” to dismiss the screens.
6. Start the “RS-Logix SL5 English” software (Note the ‘SL’). Start a “New Project”, the programming window should appear. You should now be ready to tell the SoftPLC that you will be using devicenet. Double click on “Processor Status” and on the pop-up window scroll across and select the “Dnet” tab. For the output file enter “9”, for the input file enter “10”, for the diagnostic file enter “11”. Dismiss the window and look at the memory locations under data files, there should now be I/O words there under N9, N10, N11. The input and output memory set in the RSNetworx program will be put in this memory.
7. Write a simple ladder logic program to read to smart optical sensor and output a value to the relay card. If you need help finding which inputs are which, try running a simple or empty program, and watching the memory.
9. Connect the PanelView display, and reconfigure the devicenet network. Use the Panel Builder software to create a visual interface, and then download it to the touchscreen. Write ladder logic that uses it for input and output.