Professional Documents
Culture Documents
PLC Tutorial
PLC Tutorial
Chapter I Operating system Introduction 1.1 Conventional control panel 1.2 Control panel with a PLC controller 1.3 Systematic approach to designing a process control system Chapter II Introduction to PLC controllers Introduction 2.1 First programmed controllers 2.2 PLC controller parts 2.3 Central processing Unit CPU 2.4 Memory 2.5 PLC controller programming 2.6 Power supply 2.7 Input to PLC controller 2.8 Input adjustment interface 2.9 PLC controller output 2.10 Output adjustment interface 2.11 Extension lines Chapter III Connecting sensors and output devices 3.1 Sinking-Sourcing concept 3.2 Input lines 3.3 Output lines Chapter IV Architecture of a specific PLC controller Introduction 4.1 Why OMRON? 4.2 CPM1A PLC controller 4.3 PLC controller output lines 4.4 PLC controller input lines 4.5 Memory map for CPM1A PLC controller Chapter V Relay diagram Introduction 5.1 Relay diagram 5.2 Normally open and Normally closed contacts 5.3 Short example Chapter VII Examples Introduction 7.1 Self-maintenance 7.2 Making large time intervals 7.3 Counter over 9999 7.4 Delays of ON and OFF status 7.5 Alternate ON-OFF output 7.6 Automation of parking garage for 100 vehicles 7.7 Operating a charge and discharge process 7.8 Automation of product packaging 7.9 Automation a storage door Appendix A Expanding the number of I/O lines Introduction A.1 Differences and similarities A.2 Marking a PLC controller A.3 Specific case Appendix B Detailed memory map for PLC controller Introduction B.1 General explanation of memory regions B.2 IR memory region B.3 SR memory region B.4 AR memory region B.5 PC memory region Appendix C PLC diagnostics Introduction C.1 Diagnostic functions of a PLC controller C.2 Errors C.3 Fatal errors C.4 User defined errors C.5 Failure Alarm FAL(06) C.6 Severe Failure Alarm FALS(07) C.7 MESSAGE MSG(46) C.8 Syntax errors C.9 Algorithm for finding errors in a program Appendix D Numerical systems Introduction D.1 Decimal numerical system D.2 Binary numerical system D.3 Hexadecimal numerical system Appendix E Detailed set of instructions
Chapter VI SYSWIN, program for PLC controller programming Introduction 6.1 How to connect a PLC controller to a PC 6.2 SYSWIN program installation 6.3 Writing a first program 6.4 Saving a project
6.5 Program transfer to PLC controller 6.6 Checkup of program function 6.7 Meaning of tool-bar icons 6.8 PLC controller function modes 6.9 RUN mode 6.10 MONITOR mode 6.11 PROGRAM-STOP mode 6.12 Program execution and monitoring 6.13 Program checkup during monitoring 6.14 Graphic display of dimension changes in a program
Download:
Introduction
A process control system is made up of a group of electronic devices that provide stability, accuracy and eliminate harmful transition statuses in production processes. Operating systems can have different arrangements and implementation, from energy supply units to machines. As technology quickly progresses, many complex operational tasks have been solved by connecting programmable logic controllers and a central computer. Beside connections with devices (e.g., operating panels, motors, sensors, switches, valves, etc.) possibilities for communication among instruments are so great that they allow a high level of exploitation and process coordination. In addition, there is greater flexibility in realizing a process control system. Each component of a process control system plays an important role, regardless of its size. For example, without a sensor, the PLC wouldn't know what is going on during a process. In an automated system, a PLC controller is usually the central part of a process control system. With the execution of a program stored in program memory, PLC continuously monitors status of the system through signals from input devices. Based on the logic implemented in the program, PLC determines which actions need to be executed with output instruments. To run more complex processes it is possible to connect more PLC controllers to a central computer. A system could look like the one pictured below:
In this photo you can notice a large number of electrical wires, time relays, timers and other elements of automation typical for that period. Pictured control panel is not one of the more complicated ones, so you can imagine what complex ones looked like. Most frequently mentioned disadvantages of a classic control panel are: Too much work required in connecting wires Difficulty with changes or replacements Difficulty in finding errors; requiring skillful work force When a problem occurs, hold-up time is indefinite, usually long.
Advantages of control panel that is based on a PLC controller can be presented in few basic points: 1. Compared to a conventional process control system, number of wires needed for connections is reduced by 80% 2. Consumption is greatly reduced because a PLC consumes less than a bunch of relays 3. Diagnostic functions of a PLC controller allow for fast and easy error detection. 4. Change in operating sequence or application of a PLC controller to a different operating process can easily be accomplished by replacing a program through a console or using a PC software (not requiring changes in wiring, unless addition of some input or output device is required). 5. Needs fewer spare parts 6. It is much cheaper compared to a conventional system, especially in cases where a large number of I/O instruments are needed and when operational functions are complex. 7. Reliability of a PLC is greater than that of an electro-mechanical relay or a timer.
Introduction
Industry has begun to recognize the need for quality improvement and increase in productivity in the sixties and seventies. Flexibility also became a major concern (ability to change a process quickly became very important in order to satisfy consumer needs). Try to imagine automated industrial production line in the sixties and seventies. There was always a huge electrical board for system controls, and not infrequently it covered an entire wall! Within this board there was a great number of interconnected electromechanical relays to make the whole system work. By word "connected" it was understood that electrician had to connect all relays manually using wires! An engineer would design logic for a system, and electricians would receive a schematic outline of logic that they had to implement with relays. These relay schemas often contained hundreds of relays. The plan that electrician was given was called "ladder schematic". Ladder displayed all switches, sensors, motors, valves, relays, etc. found in the system. Electrician's job was to connect them all together. One of the problems with this type of control was that it was based on mechanical relays. Mechanical instruments were usually the weakest connection in the system due to their moveable parts that could wear out. If one relay stopped working, electrician would have to examine an entire system (system would be out until a cause of the problem was found and corrected). The other problem with this type of control was in the system's break period when a system had to be turned off, so connections could be made on the electrical board. If a firm decided to change the order of operations (make even a small change), it would turn out to be a major expense and a loss of production time until a system was functional again. It's not hard to imagine an engineer who makes a few small errors during his project. It is also conceivable that electrician has made a few mistakes in connecting the system. Finally, you can also imagine having a few bad components. The only way to see if everything is all right is to run the system. As systems are usually not perfect with a first try, finding errors was an arduous process. You should also keep in mind that a product could not be made during these corrections and changes in connections. System had to be literally disabled before changes were to be performed. That meant that the entire production staff in that line of production was out of work until the system was fixed up again. Only when electrician was done finding errors and repairing,, the system was ready for production. Expenditures for this kind of work were too great even for well-to-do companies.
2.4 Memory
System memory (today mostly implemented in FLASH technology) is used by a PLC for an process control system. Aside from this operating system it also contains a user program translated from a ladder diagram to a binary form. FLASH memory contents can be changed only in case where user program is being changed. PLC controllers were used earlier instead of FLASH memory and have had EPROM memory instead of FLASH memory which had to be erased with UV lamp and programmed on programmers. With the use of FLASH technology this process was greatly shortened. Reprogramming a program memory is done through a serial cable in a program for application development. User memory is divided into blocks having special functions. Some parts of a memory are used for storing input and output status. The real status of an input is stored either as "1" or as "0" in a specific memory bit. Each input or output has one corresponding bit in memory. Other parts of memory are used to store variable contents for variables used in user program. For example, timer value, or counter value would be stored in this part of the memory.
This electrical supply is usually not used to start external inputs or outputs. User has to provide separate supplies in starting PLC controller inputs or outputs because then you can ensure so called "pure" supply for the PLC controller. With pure supply we mean supply where industrial environment can not affect it damagingly. Some of the smaller PLC controllers supply their inputs with voltage from a small supply source already incorporated into a PLC.
Introduction
Connecting external devices to a PLC controller regardless whether they are input or output is a special subject matter for industry. If it stands alone, PLC controller itself is nothing. In order to function it needs sensors to obtain information from environment, and it also needs execution devices so it could turn the programmed change into a reality. Similar concept is seen in how human being functions. Having a brain is simply not enough. Humans achieve full activity only with processing of information from a sensor (eyes, ears, touch, smell) and by taking action through hands, legs or some tools. Unlike human being who receives his sensors automatically, when dealing with controllers, sensors have to be subsequently connected to a PLC. How to connect input and output parts is the topic of this chapter.
If we were to make type of connection more specific, we'd get combinations as in following pictures (for more specific connection schemas we need to know the exact sensor model and a PLC controller model).
How something is connected with a PLC output depends on the element being connected. In short, it depends on whether this element of output load device is activated by a positive supply pole or a negative supply pole.
Introduction
This book could deal with a general overview of some supposed PLC controller. Author has had an opportunity to look over plenty of books published up till now, and this approach is not the most suitable to the purposes of this book in his opinion. Idea of this book is to work through one specific PLC controller where someone can get a real feeling on this subject and its weight. Our desire was to write a book based on whose reading you can earn some money. After all, money is the end goal of every business!
can be mounted to industrial "track" along with other automated elements, but also by a screw to the machine wall or control panel.
Controller is 8cm high and divided vertically into two areas: a lower one with a converter of 220V~ at 24VDC and other voltages needed for running a CPU unit; and, upper area with a CPU and memory, relays and digital inputs. When you lift the small plastic cover you'll see a connector to which an RS232 module is hooked up for serial interface with a computer. This module is used when programming a PLC controller to change programs or execution follow-up. When installing a PLC it isn't necessary to install this module, but it is recommended because of possible changes in software during operation.
To better inform programmers on PLC controller status, maker has provided for four light indicators in the form of LED's. Beside these indicators, there are status indicators for each individual input and output. These LED's are found by the screw terminals and with their status are showing input or output state. If input/output is active, diode is lit and vice versa.
With activation of phototransistor, relay comes under voltage and activates a contact between points A and B. Contacts A and B can in our case be either in connection or interrupted. What state these contacts are in is determined by a CPU through appropriate bits in memory location IR010. One example of relay status is shown in a picture below. A true state of devices attached to these relays is displayed.
key. As CPM1A PLC has a source of direct voltage of 24V, the same source can be used to incite input (problem with this source is its maximum current which it can give continually and which in our case amounts to 0.2A). Since inputs to a PLC are not big consumers (unlike some sensor where a stronger external supply must be used) it is possible to take advantage of the existing source of direct supply to incite all six keys.
this step is stored in memory in order to be used in the following step. Step 2. Program execution. Here a PLC executes a program, instruction by instruction. Based on a program and based on the status of that input as obtained in the preceding step, an appropriate action is taken. This reaction can be defined as activation of a certain output, or results can be put off and stored in memory to be retrieved later in the following step. Step 3. Checkup and correction of output status. Finally, a PLC checks up output status and adjusts it as needed. Change is performed based on the input status that had been read during the first step, and based on the results of program execution in step two. Following the execution of step 3 PLC returns to the beginning of this cycle and continually repeats these steps. Scanning time is defined by the time needed to perform these three steps, and sometimes it is an important program feature.
Unlike microcontroller systems where only some memory locations have had their purpose clearly defined (ex. register that contains counter value), a memory of PLC controller is completely defined, and more importantly almost entire memory is addressable in bits. Addressability in bits means that it is enough to write the address of the memory location and a number of bits after it in order to manipulate with it. In short, that would mean that something like this could be written: "201.7=1" which would clearly indicate a word 201 and its bit 7 which is set to one. IR region Memory locations intended for PLC input and output. Some bits are directly connected to PLC controller inputs and outputs (screw terminal). In our case, we have 6 input lines at address IR000. One bit corresponds to each line, so the first line has the address IR000.0, and the sixth IR000.5. When you obtain a signal at the input, this immediately affects the status of a corresponding bit. There are also words with work bits in this region, and these work bits are used in a program as flags or certain conditional bits. SR region Special memory region for control bits and flags. It is intended first and foremost for counters and interrupts. For example, SR250 is memory location which contains an adjustable value, adjusted by potentiometer no.0 (in other words, value of this location can be adjusted manually by turning a potentiometer no.0. TR region When you move to a subprogram during program execution, all relevant data is stored in this region up to the return from a subprogram. HR region It is of great importance to keep certain information even when supply stops. This part of the memory is battery supported, so even when supply has stopped it will keep all data found therein before supply stopped. AR region This is one more region with control bits and flags. This region contains information on PLC status, errors, system time, and the like. Like HR region, this one is also battery supported. LR region In case of connection with another PLC, this region is used for exchange of data. Timer and counter region This region contains timer and counter values. There are 128 values. Since we will consider examples with timers and counters, we will discus this region more later on. DM region Contains data related to setting up communication with a PC computer, and data on errors.
Each region can be broken down to single words and meanings of its bits. In order to keep the clarity of the book, this part is dealt with in Attachments and we will deal with those regions here whose bits are mostly used for writing.
Note: 1. IR and LR bits that are not used for their allocated functions can be used as work bits. 2. The contents of the HR area, LR area, Counter area, and read/write DM area are backed up by a capacitor. At 25 oC, the capacitor will back up memory for 20 days.
3. When accessing a PV, TC numbers are used as word data; when accessing Completing Flags, they are used as bit data. 4. Data in DM6144 to DM6655 cannot be overwritten from the program, but they can be changed from a Peripheral Device
Introduction
Programmable controllers are generally programmed in ladder diagram (or "relay diagram") which is nothing but a symbolic representation of electric circuits. Symbols were selected that actually looked similar to schematic symbols of electric devices, and this has made it much easier for electricians to switch to programming PLC controllers. Electrician who has never seen a PLC can understand a ladder diagram.
Most instructions require at least one operand, and often more than one. Operand can be some memory location, one memory location bit, or some numeric value -number. In the example above, operand is bit 0 of memory location IR000. In a case when we wish to
proclaim a constant as an operand, designation # is used beneath the numeric writing (for a compiler to know it is a constant and not an address.) Based on the picture above, one should note that a ladder diagram consists of two basic parts: left section also called conditional, and a right section which has instructions. When a condition is fulfilled, instruction is executed, and that's all!
Picture above represents a example of a ladder diagram where relay is activated in PLC controller when signal appears at input line 00. Vertical line pairs are called conditions. Each condition in a ladder diagram has a value ON or OFF, depending on a bit status assigned to it. In this case, this bit is also physically present as an input line (screw terminal) to a PLC controller. If a key is attached to a corresponding screw terminal, you can change bit status from a logic one status to a logic zero status, and vice versa. Status of logic one is usually designated as "ON", and status of logic zero as "OFF". Right section of a ladder diagram is an instruction which is executed if left condition is fulfilled. There are several types of instructions that could easily be divided into simple and complex. Example of a simple instruction is activation of some bit in memory location. In the example above, this bit has physical connotation because it is connected with a relay inside a PLC controller. When a CPU activates one of the leading four bits in a word IR010, relay contacts move and connect lines attached to it. In this case, these are the lines connected to a screw terminal marked as 00 and to one of COM screw terminals.
work until someone pushed the switch button and thus informed of his or her presence at the entrance. Home alarm system is an example of an application of a normally closed switch. Let's suppose that alarm system is intended for surveillance of the front door to the house. One of the ways to "wire" the house would be to install a normally open switch from each door to the alarm itself (precisely as with a bell switch). Then, if the door was opened, this would close the switch, and an alarm would be activated. This system could work, but there would be some problems with this, too. Let's suppose that switch is not working, that a wire is somehow disconnected, or a switch is broken, etc. (there are many ways in which this system could become dysfunctional). The real trouble is that a homeowner would not know that a system was out of order. A burglar could open the door, a switch would not work, and the alarm would not be activated. Obviously, this isn't a good way to set up this system. System should be set up in such a way so the alarm is activated by a burglar, but also by its own dysfunction, or if any of the components stopped working. (A homeowner would certainly want to know if a system was dysfunctional). Having these things in mind, it is far better to use a switch with normally closed contacts which will detect an unauthorized entrance (opened door interrupts the flow of electricity, and this signal is used to activate a sound signal), or a failure on the system such as a disconnected wire. These considerations are even more important in industrial environment where a failure could cause injury at work. One such example where outputs with normally closed contacts are used is a safety wall with trimming machines. If the wall doors open, switch affects the output with normally closed contacts and interrupts a supply circuit. This stops the machine and prevents an injury. Concepts normally open and normally closed can apply to sensors as well. Sensors are used to sense the presence of physical objects, measure some dimension or some amount. For instance, one type of sensors can be used to detect presence of a box on an industry transfer belt. Other types can be used to measure physical dimensions such as heat, etc. Still, most sensors are of a switch type. Their output is in status ON or OFF depending on what the sensor "feels". Let's take for instance a sensor made to feel metal when a metal object passes by the sensor. For this purpose, a sensor with a normally open or a normally closed contact at the output could be used. If it were necessary to inform a PLC each time an object passed by the sensor, a sensor with a normally open output should be selected. Sensor output would set off only if a metal object were placed right before the sensor. A sensor would turn off after the object has passed. PLC could then calculate how many times a normally open contact was set off at the sensor output, and would thus know how many metal objects passed by the sensor. Concepts normally open and normally closed contact ought to be clarified and explained in detail in the example of a PLC controller input and output. The easiest way to explain them is in the example of a relay.
Normally open contacts would represent relay contacts that would perform a connection upon receipt of a signal. Unlike open contacts, with normally closed contacts signal will interrupt a contact, or turn a relay off. Previous picture shows what this looks like in practice. First two relays are defined as normally open , and the other two as normally closed. All relays react to a signal! First relay (00) has a signal and closes its contacts. Second relay (01) does not have a signal and remains opened. Third relay (02) has a signal and opens its contacts considering it is defined as a closed contact. Fourth relay (03) does not have a signal and remains closed because it is so defined. Concepts "normally open" and "normally closed" can also refer to inputs of a PLC controller. Let's use a key as an example of an input to a PLC controller. Input where a key is connected can be defined as an input with open or closed contacts. If it is defined as an input with normally open contact, pushing a key will set off an instruction found after the condition. In this case it will be an activation of a relay 00. If input is defined as an input with normally closed contact, pushing the key will interrupt instruction found after the condition. In this case, this will cause deactivation of relay 00 (relay is active until the key is pressed). You can see in picture below how keys are connected, and view the relay diagrams in both cases.
Normally open/closed conditions differ in a ladder diagram by a diagonal line across a symbol. What determines an execution condition for instruction is a bit status marked beneath each condition on instruction line. Normally open condition is ON if its operand bit has ON status, or its status is OFF if that is the status of its operand bit. Normally closed condition is ON when its operand bit is OFF, or it has OFF status when the status of its operand bit is ON. When programming with a ladder diagram, logical combination of ON and OFF conditions set before the instruction determines the eventual condition under which the instruction will be, or will not be executed. This condition, which can have only ON or OFF values is called instruction execution condition. Operand assigned to any instruction in a relay diagram can be any bit from IR, SR, HR, AR, LR or TC sector. This means that conditions in a relay diagram can be determined by a status of I/O bits, or of flags, operational bits, timers/counters, etc.
The following picture depicts the connection scheme for this example.
Introduction
SYSWIN is a software designed for OMRON programmable controllers class C and CV. It is designed for creating and maintaining a program, as well as for testing PLC controller function, in off-line and controller's operational regime. Necessary conditions for starting SYSWIN are Microsoft Windows environment on a standard IBM or 386/486 compatible or Pentium computer, with 8MB RAM at least, and 10MB free disc space.
A window will come up like the one below where you need to write in the file command "setup.exe". Mentioned file can be found in the installation directory of Syswin program. Following a brief installation procedure you will get a program group Syswin 3.4. Double-click on Syswin icon starts a Syswin program which opens as in the following picture.
Select a PLC controller by clicking on OK, and a program is ready to be used. It is recommended when you begin working that you write in a header a title of a program, author's name and inputs/outputs used. This may seem as a waste of time, but really isn't because this habit of writing comments will pay off in the future. Program written here is just a basic program made for learning Syswin. Program can detect when a key has been pressed and can activate a relay at the PLC controller output. As long as the key is pressed down, a relay is active. Operation of a relay and a key can be followed via LED diodes on PLC controller housing. Writing a program begins with a click on the first icon to the left, recognized by two vertical lines. Icon beneath this one is similar to the first but for a slash. These two icons correspond with concepts normally open and normally closed contact which all instruction lines start with. You can select an option with an open contact by clicking on the first icon. When you click on the black rectangle to the right, a small window will appear where you need to write in the address of a bit a contact relates to. It is very important to use addresses in a regular way when programming with SYSWIN. Addresses can have two parts, first refers to the word address, and the second to bit address in that word (both numbers must be separated by a period). For example, if
address 200 is used, SYSWIN will interpret this as 2.00, and a zero bit whose word address is 2 will be called for. If you wish to access word 200 or its zero bit, you must use a call 20000, or better even 200.00. In this example address 000.00 is assigned for input address (key). This address represents a zero bit for word 000 from memory region IR. Simply said, it is an input screw terminal designated as 00 input. By connecting a key to it, and to one of the COMM terminal screws, a needed connection between PLC controller and keys is established.
Address dialogue box for a bit that contact refers to When you have written in 000.00, select OK, and first segment of the program will come up. Bit address will appear above the symbol with two vertical lines which refers to this bit, and a black rectangle will move one space to the right.
First instructions up to the bus bar are called conditions because their execution activates instructions found to the right of the condition instructions. When a condition is entered, you also need to enter a corresponding instruction that is set off by an execution of the
condition. In this example it is a relay controlled by a 00 bit in a word 010 of memory region IR. Output instructions are represented by a circle, or a circle and a line if we are dealing with a normally closed contact. By clicking on the icon with a circle, you select an output option with normally open contacts. Click on a black rectangle, and a contact window will come up where you need to write in the address for the output bit 010.00. Output of the IR region is found at address IR010, and first four bits of this word represent a relay within a PLC controller (if we are talking about a model CPM1A with relay outputs). Program done so far looks as in picture below.
The basic functional entirety of some program is Network. Program consists of several networks found one below the other. Operations with these are found in Block option of the menu. Of all options, two basic ones, Insert network and Delete network are used the most. Other makers for PLC controllers use different concepts such as Rung instead of the term Network. Simply said, we are talking about a PLC program sequence which has one or more executing instructions, and along with END instruction can make up one correct PLC program. As the first network in a program is already in use, the next one has to be added. Adding a Network is done with Insert network command from a Block menu.
When selecting this option, a small window appears where you need to select whether a new network will appear above or below the existing one.
In our case you should choose the second option and click on OK. Following this, a new network appears as in picture below.
Last network in every program must contain END instruction. Since this is a simple example, second network is also the last. End instruction is found among the functions. In order to come to it, you need to click on FUN icon following which a window as in picture below will come up.
END instruction can be obtained either by writing in "END" in newly obtained window or by clicking on Select which gives all PLC controller instructions sorted by the regions as in the following picture.
By entering the END instruction your writing of a program is finished. Finished program looks as in the following picture.
communication. Of all the parameters, the most important one to be selected is a serial port of a computer that PLC is connected to. Default settings for CPM1A are: COM1, 9600 Baud, Unit 00, protocol ASCII 7 bit Even Parity 2 stop and they need to be left so. To check how communication functions, you can click on Test PLC to test link with a PLC controller.
When a connection has been established, program transfer begins with a click on download from Online menu. Select expansion function or memory allocation. Before you program a PLC, it's good to erase program's memory contents. Finally, after a successful program transfer to a PLC, a message window will come up to inform us of this.
keyboard. You'll find a corresponding key of the keyboard by each icon, and you can accomplish the same action with it as you would using a mouse.
By clicking on the icon, we have selected a desired tool, and with a click on network section this symbol will be stored in a program. Explanation for each of the icons is given as follows: Open contact icon. By clicking on this icon (or using a key '"') we enter an open contact into Network. We need to position the element we have entered at a specified place (black space). Following this, a message window where data can be entered (open contact address-number of words, bit position) is activated automatically. Closed contact icon. By clicking on this icon (or '/' on keyboard) we enter a closed contact or inverted condition into network. Horizontal line. By clicking on this icon (or using '-' on a keyboard), horizontal line is lengthened out from left to right. SYSWIN, however, retains a right to make drawn lines optimal in terms of length, or to point out possible errors. This option is used when you need to add another condition before an instruction contingent upon this condition, or when something simply can not fit. Vertical line. With a click on this icon, or use of '?', we draw vertical lines from top to bottom. This option is necessary to realize parallel connections between contacts. Output instruction. This represents an instruction that is executed if condition instruction preceding it is executed. With the help of this instruction we advance a result of logical expression with output variables (bits). We can arrive to this instruction with the help of keyboard ('O' key).
Inverted output instruction (shortcut-key 'Q'). Similarly to the previous case, with this executing instruction we advance a result of logical expression to an output bit, and the only difference is that this bit is turned on if a condition is not executed and vice versa. PLC functions (shortcut-key 'F'). Click on this icon accomplishes possibility of installment of complex PLC instructions into a program. Window that appears following a click on the icon contains all instructions sorted by sections. Some of these instructions are given separately as icons, and some can be accessed only through this option. One such instruction is END instruction which is used in each program. Window that comes up is displayed in the following picture.
When this window pops up, select an instruction and click on OK. Click on this icon (or using 'T' key) will give you an option to enter a timer into the program. Using a mouse, click on the bright area of the monitor, and a message window comes up where you can enter needed information relating to a timer (timer designation and duration in milliseconds). This way, we get a classic timer or timer with a delay when turned on. If some other version of a timer is needed, preceding FUN icon should be used, and option Timers and counters (see picture above) selected. Counter icon. Click on this icon (or 'C' key), and this will install a classic counter into a PLC program. Prior to this we enter needed information in message window: designation of the counter (CNT001 for instance) and counter value. Change of counter status (decrementing by 1) is done when an input signal (CP) changes from OFF to ON status. With this icon we can invert previously entered contact, output or input. Inversion is done so that we first click on this icon, and then on a variable whose inversion we wish to perform.
Erase icon. Click on this icon and a shaded area of network erases the shaded part of the program. Mouse plays an important part in the SYSWIN program. Each double-click on any PLC instruction results in a corresponding editor where necessary changes can be entered. This principle is accordingly installed into SYSWIN, so double-click on block or network heading (BLOCK HEADER BAR or NETWORK HEADER BAR) gives the same results.
With Trace/Configure command adjust parameters for monitoring. Necessary parameters are Trigger or an event where saving will begin, sampling period and bits and/or words whose values we are monitoring. Mapping of a time diagram for dimensions previously specified begins after the last command. Quitting is done with a click on a black square icon, and restarting is performed by clicking on an a red circle icon. Return to the editor with a ladder diagram by clicking on Editors menu and Program editor submenu.
CHAPTER 7 EXAMPLES
Introduction 7.1 Self-maintenance 7.2 Making large time intervals 7.3 Delays of ON and OFF status 7.4 Counter over 9999 7.5 Alternate ON-OFF output 7.6 Automation of parking garage 7.7 Operating a charge and discharge process 7.8 Automation of product packaging 7.9 Automation of storage door
Introduction
Programming only related examples make up the first group of examples. They are given as separate small programs that can later be incorporated into larger ones. Second group consists of examples which can be applied to some real problems.
7.1 Self-maintenance
Program allows input to remain at ON status even when the condition that brought it to that status stops. Example in picture below illustrates how use of a key connected to the input IR000.00 changes IR010.01 output status to ON. By letting the key go, output IR010.01 is not reset. This is because IR010.01 output keeps itself at status ON through OR circuit (having IR000.00), and it stays in this status until key at input IR000.01 is pressed. Input IR000.01 is in I connection with the output pin IR010.01 which cancels out a condition, and resets an IR010.01 bit. Example of self-maintenance is quite frequent in specific applications. If a user was connected to IR010.01 output, START and STOP functions could be realized from two keys (without the use of switches). Specifically, input IR000.00 would be a START key, and IR000.01 would be a STOP key.
Ladder Diagram:
Ladder Diagram:
Same effect can be achieved with a modified program below. First change is that there is a "switch" for the whole program, and this is IR000.00 input (program can accomplish its function only while this switch is active). Second change is that the line whose status is followed is brought to IR000.01 input. The rest is the same as in the previous version of the program. Counter CNT002 counts status changes of the CNT001 counter flag. When it numbers them, it changes the status of its flag CNT002 which executes the condition for status change of IR010.00 output. This changes IR010.00 output status after 20000 changes of input IR000.01. Ladder Diagram:
Program starts executing a condition at IR000.00 bit. Since a normally closed contact which refers to counter flag (that isn't set ) is linked with this IR000.00 bit in "I" circuit, this status of IR200.00 bit will change to ON. Bit IR200.00 keeps its status through self-maintenance until counter flag is not set and a condition interrupted. When an IR200.00 bit is set, timers TIM001 and TIM002 start counting a set interval number at 0.1 s ( in the example, this number is 10 for the first timer, or 20 for the second timer, and this sets the period of one or two seconds). With both timers, a normally closed contact which refers to TIM002 timer flag is connected with IR200.00 bit. When this flag is set which happens every two seconds, both timers are reset. Timer TIM002 resets timer TIM001 and itself, and this starts a new cycle. At the start of a program, IR010.00 output bit changes status to ON and stays in this status until TIM001 flag changes status to ON (after one second). By changing TIM001 flag status to ON, condition is broken (because it is represented as normally closed contact) and IR010.00 bit changes status to OFF. IR010.00 output status changes to ON again when time has run out on TIM002 timer. This resets TIM001 timer and its flag which in turn executes a condition for status change of the IR010.00 output. Cycle is thus repeated until a counter numbers 10 changes of TIM001 flag status. With the change of status of CNT000 counter flag, a condition for an assisting bit IR200.00 is broken, and program stops working. Ladder Diagram:
CHAPTER 7 EXAMPLES
Introduction 7.1 Self-maintenance 7.2 Making large time intervals 7.3 Delays of ON and OFF status 7.4 Counter over 9999 7.5 Alternate ON-OFF output 7.6 Automation of parking garage 7.7 Operating a charge and discharge process 7.8 Automation of product packaging 7.9 Automation of storage door
Signal from a sensor at the garage entrance sets bit IR200.00. This bit is a condition for execution of the following two instructions in a program. First instruction resets carry bit CY (it is always done before some other calculation that would influence it), and the other instruction adds one to a number of cars in word HR00, and a sum total is again stored in
HR00. HR memory space is selected for storing a total number of cars because this keeps the status even after supply stops. Symbol "#" in addition and subtraction instructions defines decimal constant that is being added or subtracted from a number of cars already in the garage. Condition for executing comparison instruction CPM is always executed because bit SR253.13 is always set; this practically means that comparison will be done in each cycle regardless whether car has entered or left the garage. Signal lamp for "garage full" is connected to an output IR010.00. Working of the lamp is controlled by EQ (equal) flag at address SR255.06 and GR (greater than) flag at address SR255.05. Both bits are in OR connection with an output IR010.00 where the signal lamp is. This way lamp will emit light when a number of cars is greater than or equal to 100. Number of cars in a real setting can really be greater than 100 because some untrusting driver may decide to check whether there is any space left, and so a current number of cars can increase from a 100 to 101. When he leaves the garage, a number of cars goes down to 100 which is how many parking spots there are in fact. Ladder diagram:
Both types of differentiators are used in this example. You can get an idea of what their role is from picture below. Level S1 and S2 sensors provide information on whether fluid level goes beyond a specified value. This type of information is not important when you wish to know whether fluid level goes up or down in a certain sequence. Mainly, event of approaching the upper level, or a moment when fluid that fills up a reservoir goes beyond upper level and activates sensor S1 is detected in segment 3 of a ladder diagram. Brief
activation of IR200.02 output has as a consequence a turn off of an output V1 (valve for water, prevents further flow of water but also motor operation in the mixer). Moment prior to this (segment 5) valve V2 turns on which marks a beginning of fluid outflow. Other two differentiators (in segments 6 and 7) have a task of registering events such as closing a valve MV2 and drop in fluid level below allowed minimum.
Ladder diagram:
By pushing START key you activate Flag1 which represents an assisting flag (Segment 1) that comes up as a condition in further program (resetting depends only on a STOP key). When started, motor of an conveyor for boxes is activated. The conveyor takes a box up to the limit switch, and a motor stops then (Segment 4). Condition for starting a conveyor with apples is actually a limit switch for a box. When a box is detected, a conveyor with apples starts moving (Segment 2). Presence of the box allows counter to count 10 apples through a sensor used for apples and to generate counter CNT010 flag which is a condition for new activation of a conveyor with boxes (Segment 3). When the conveyor with boxes has been activated, limit switch resets counter which is again ready to count 10 apples. Operations
repeat until STOP key is pressed when condition for setting Flag1 is lost. Picture below gives a time diagram for a packaging line signal.
Ladder diagram:
By setting a bit IR000.00 at the PLC controller input where ultrasonic sensor is connected, output IR010.00 (a switch is attached to this output) is activated, so that a motor lifts the doors up. Aside from this condition, the power source for lifting the doors must not be active (IR010.01) and the doors must not be in upper position already (IR000.02). Condition for upper limit switch is given as normally closed, so change of its status from OFF to ON (when doors are lifted) will end a condition for bit IR010.00 where power source for lifting the doors is (Segment 1). Photo-electric switch registers a vehicle that passes by, and sets flag IR200.00. DIFD instruction is used. This instruction is activated when a condition that precedes it changes status from ON to OFF. When a vehicle passes through a door, it interrupts a ray and bit
By changing status of an assisting flag from OFF to ON a condition for lowering a door is executed (Segment 3). Aside from this condition, it is necessary that a unit power source for lifting a door is turned off, and that door is not in lower position already. Bit which operates this power source for lowering, IR010.01 is automatic, so doors are lowered until they come to the bottom limit switch which is represented in a condition as normally closed. Its status change from OFF to ON interrupts a condition of the power source for lowering doors. With oncoming new vehicle, cycle is repeated. Ladder diagram:
APPENDIX A
INTRODUCTION
A.1 Differences and similarities A.2 Marking the PLC controller A.3 Specific case
Introduction
This appendix is an answer to the question What if more input or output lines are needed ?. Model detailed in the book carries the mark CPM1A-10CDR-A and is taken as an optimal for its price and features. Alternative models with greater number of lines include CPM1A20CDR-A, CPM1A-30CDR-A or CPM1A-40CDR-A. The last two can be expanded with three additional modules with 20 extra I/O lines each, totaling 100 I/O lines as a maximum (if this is still insufficient, maybe it is time for you to start using some of more powerful PLC controllers). If not even the most powerful model of CPM1A family satisfies your needs, then extra modules with 20 I/O lines are added. This form of connection reaches 100 input/outputs, which is a significant number in industrial proportions.
24 VDC Transistor NPN Transistor PNP 8 points 24 VDC 24 VDC 100 to 240 VAC, 50/60 Hz 24 VDC 24 VDC 24 VDC 100 to 240 VAC, 50/60 Hz 24 VDC 24 VDC 24 VDC 100 to 240 VAC, 50/60 Hz 24 VDC 24 VDC 24 VDC
20 I/O points
12 points
CPM1A10CDR-D CPM1Al0CDT-D CPM1A10CDT1-D CPMlA20CDR-A CPM1A20CDR-D CPM1A20CDT-D CPMlA20CDT1-D CPM1A30CDR-A CPM1A30CDR-D CPM1A30CDT-D CPM1A30CDT1-D CPM1A40CDR-A CPM1A40CDR-D CPM1A40CDT-D CPM1A40CDT1-D
30 I/O points
18 points
40 I/O points
24 points
Notice that PLC controllers with 10 and 20 I/O lines do not have an expansion port. Generally speaking, if there is the slightest possibility for expansion in the project, PLC controller with 30 or 40 I/O lines should be used.
1 2 3 4
Unit Assigned input bits Assigned output bits Central processing unit IR 00000-IR 00011 and IR 01000-IR 01007 and IR IR 00100-IR 00105 (CPM2A-30CDX-X) 01100-IR 01103 Unit for I/O expansion IR 00200-IR 02011 IR 01200-IR 01207 (CPM1A-20EDxxx) Analog I/O unit (CPM1A- IR 00300-IR 03015 and IR 01300-IR 01315 IR 00400-IR 00415 MAD01) Unit for I/O expansion IR 00500-IR 00511 IR 01400-IR 01415 (CPM1A-EDxxx)
Introduction
Purpose of this appendix is to explain certain memory areas in detail. As the following tables cover whole memory, there are options left unused in this book. They should be skipped during the first reading, and used later according to needs.
Data area
input area
Word(s)
IR 000 - IR 009 (10 words)
Bit(s)
Function
IR 00000 - IR 00915 (160 These bits may be bits) assigned to an external I/O connection. Some of these have direct output on screw terminal (for IR 01000 - IR 01915 (160 example, IR000.00 bits) IR000.05 and IR010.00 IR010.03 with CPM1A model) Working bits that can be used freely in the IR 20000 - IR 23115 (512 program. They are bits) commonly used as swap bits SR23200 - SR25515 (384 Special functions, such as bits) flags and control bits TR 0 - TR 7 (8 bits) HR0000 - HR1915 (320 bits) AR0000 - AR1515 (256 bits) Temporary storage of ON/OFF states when jump takes place Data storage; these keep their states when power is off Special functions, such as flags and control bits
working area
SR area TR area
HR area AR area
LR 00 - LR 15 (16 words)
1:1 connection with another PC Same numbers are used for both timers and counters Data of DM area may be accessed only in word form. Words keep their contents after the power is off Part of the memory for storing the time and code of error that occurred. When not used for this purpose, they can be used as regular DM words for reading and writing. They cannot be changed from within the program Storing various parameters for controlling the PC
DM 0000 - DM 0999 and Read/write DM 1022 - DM 1023 (1002 words) Error writing DM area Read only DM 6144 - DM 6599 (456 words) DM 1000 - DM 1021 (22 words)
---
---
---
PC setup
---
Note: 1. IR and LR bits, when not used to their purpose, may be used as working bits. 2. Contents of HR area, LR area, counter and DM area for reading/writing is stored within backup condenser. On 25C, condenser keeps the memory contents for up to 20 days. 3. When accessing the current value of PV, TC numbers used for data have the form of word. When accessing the Completing flags, they are used as data bits. 4. Data from DM6144 to DM6655 must not be changed from within the program, but can be changed by peripheral device.
Words
SR 232 - SR 235
Bits
00 - 15
Function
Input area for macro functions. Contains input operands for MCRO(99) (may be used for working bits, when MCRO(99) is not used) Output area for macro functions. Contains output operands for MCRO(99) (may be used for working bits, when MCRO(99) is not used) Contains set value SV, when input interrupt 0 is used in counter mode (4 hexadecimal digits) (may be used for working bits, when input interrupt 0 is not used in counter mode) Contains set value SV, when input interrupt 1 is used in counter mode (4 hexadecimal digits) (may be used for working bits, when input interrupt 1 is not used in counter mode) Contains set value SV, when input interrupt 2 is used in counter mode (4 hexadecimal digits) (may be used for working bits, when input interrupt 2 is not used in counter mode) Contains set value SV, when input interrupt 3 is used in counter mode (4 hexadecimal digits) (may be used for working bits, when input interrupt 3 is not used in counter mode) Contains current value (PV-1), when input interrupt 0 is used in counter mode (4 hexadecimal digits) Contains current value (PV-1), when input interrupt 1 is used in counter mode (4 hexadecimal digits) Contains current value (PV-1), when input interrupt 2 is used in counter mode (4 hexadecimal digits) Contains current value (PV-1), when input interrupt 3 is used in counter mode (4 hexadecimal digits) Contains current value PV of the high-speed counter (may be used for working bits, when high-speed counter is not used) Analog setting of value 0. Keeps 4 digit BCD value (0000 - 0200) set via analog potentiometer on the PLC controller casing. Analog setting of value 1. Keeps 4 digit BCD value (0000 - 0200) set via analog potentiometer on the PLC controller casing. Reset of the high-speed counter Not used Peripheral port. Switches on for the reset of the peripheral port (this doesn't apply to a case when peripheral device is connected). Bit automatically changes state to OFF after the reset Not used PLC Setup Reset Bit. When on, it initializes PC setup (DM6600DM6655). It automatically goes to OFF after the reset. This applies only if the PC is in PROGRAM mode Forced Status Hold Bit. OFF: bits used in the operation of forced set/reset are cleared when changing from PROGRAM to MONITOR mode. ON: bits used in the operation of forced set/reset keep their states when changing from PROGRAM to MONITOR mode. I/O Hold bit. OFF: IR and LR bits are reset when starting or ending an operation. ON: IR and LR bits keep their states when starting or ending an operation. Not used
SR 236 - SR 239
00 - 15
SR 240
00 - 15
SR 241
00 - 15
SR 242
00 - 15
SR 243 SR 244 SR 245 SR 246 SR 247 SR 248, SR 249 SR 250 SR 251 SR 252
00 - 15 00 - 15 00 - 15 00 - 15 00 - 15 00 - 15 00 - 15 00 - 15 00 01 - 07 08 09 10
11 12
13
14 15
Error Log Reset Bit. Bit state OFF clears the record of error taking place. Bit automatically goes off after the operation Not used FAL error code. Location contains error code (2 digit number). FAL number is stored at this location upon executing FAL(06) or FAL(07) instructions. Location contents are reset upon executing FAL 00 instruction or by clearing an error from peripheral device Not used Cycle Time Overrun Flag. Bit goes to ON when program length doesn't allow cycle of input/output scanning to be executed in a specified time period Not used Flag always on Flag always off First Cycle Flag. Goes ON during the first cycle at the beginning of the operation 1 min clock impulse (30s on, 30s off) 0.02s clock impulse (0.01s on, 0.01s off) Negative (N) flag Not used Differential Monitor Flag STEP(8) execution flag Not used 0.1s clock impulse (0.05s on, 0.05s off) 0.2s clock impulse (0.1s on, 0.1s off) 1.0s clock impulse (0.5s on, 0.5s off) Instruction Execution Error (ER) Flag. Changes state to ON if error occurs during instruction execution Carry (CY) flag "Greater than" (GR) flag "Equals" (EQ) flag "Less than" (LE) flag Not used
SR 253
00 - 07
08 09 10 - 12 13 14 15 SR 254 00 01 02 03 - 05 06 07 08 - 15 SR 255 00 01 02 03 04 05 06 07 08 - 15
Word(s)
AR00 and AR01
Bit(s)
00 - 15 Not used
Function
AR02
00 01 02 03 - 07 12 - 15
Status flag of the first I/O unit for expanding I/O lines (I/O units status flag) Status flag of the second I/O unit for expanding I/O lines (I/O units status flag) Status flag of the third I/O unit for expanding I/O lines (I/O units status flag) Not used Number of connected I/O units Not used Not used Peripheral device error code Flag of peripheral device error Peripheral Device Transmission Enabled Flag Not used Not used Power-off counter. Contains 4-digit BCD value High-speed Counter Range Comparison Flags Not used Pulse Output Status. ON: stopped; OFF: Impulse at output Not used Power-up PC Setup Error Flag. Goes ON when error occurs in area DM 6600 - DM 6614 Start-up PC Setup Error Flag. Goes ON when error occurs in area DM 6615 - DM 6644 RUN PC Setup Error Flag. Goes ON when error occurs in area DM 6645 - DM 6655 Not used Long Cycle Time Flag. Goes ON if real cycle length exceeds length set in DM 6619 Not used Memory Area Specification Error Flag. Goes ON when non-existing address is specified in the program Flash Memory Error Flag Read-only DM Error Flag. Goes ON when checksum error occurs in DM 6144 - DM 6599 range PC Setup Error Flag. Goes ON when checksum error occurs in PC Setup area Program Error Flag. Goes ON when checksum error occurs in program memory (UM) or inappropriate instruction is executed Expansion Instruction Error Flag Not used Maximum Cycle Time. 4 BCD digits. Cleared at the beginning of the operation Current Cycle Time. 4 BCD digits. Not cleared when the operation ends
00 - 15 00 - 07 08 - 11 12 13 14 - 15
00 - 15 00 - 15 00 - 07 08 - 14 15
AR12 AR13
00 - 15 00 01 02 03 - 04 05 06 - 07 08 09 10 11 12 13 14 - 15
AR14 AR15
00 - 15 00 - 15
Note: 1. IR and LR bits when not used for their function may be used as working bits. 2. Contents of HR area, LR area, counter, and DM area for reading/writing are kept by battery of central processing unit. In case that the battery is removed or malfunction occurs, this data will be lost.
3. When accessing the current value of PV, TC numbers used for data have form of word. When accessing Completing flags, they are used as data bits. 4. Data stored from DM6144 to DM6655 cannot be changed from within the program, but can be changed by peripheral device. 5. Program and data from DM 6144 to DM 6655 are stored in the flash memory.
Word(s)
DM 6600
Bit(s)
00 - 07 08 - 15
Function
Startup Mode. Active only if bits 08 - 15 are set to 02. 00: PROGRAM; 01: MONITOR; 02: RUN Startup mode designation. 00: programming console switch; 01: proceeds in the mode last used before turning off the power; 02: settings in 00 - 07 Not used (set to 0) IOM Hold Bit (SR 25212). 0: Reset; 1: Keeps the state Forced Status Hold Bit (SR 25211). 0: Reset; 1: Keeps the state Writing to program memory protection. 00: OFF; 01: ON (except for DM 6602) Programming console display language. 00: English; 01: Japanese Not used Not used 00: in case of battery malfunction, error will not be generated; 01: in case of battery malfunction, error will be generated Not used Not used
Settings are active only upon resetting the PLC and sending data from PC to PLC
DM 6601
00 - 07 08 - 11 12 - 15
DM 6602
00 - 03 04 - 07 08 - 11
DM 6603 DM 6604
00 - 15 00 - 07 08 - 15
DM 6605 - DM 6614
00 - 15
Cycle Time Settings (DM 6615 - DM 6619) take effect after the transfer to PC area, next time you start working DM 6615 - DM 6616 DM 6617 00 - 15 00 - 07 08 - 15 DM 6618 00 - 07 08 - 15 DM 6619 00 - 15 Not used Servicing time for peripheral port. Active when bits 08 - 15 are set to 01. It is expressed in percentage of cycle time duration (00 to 99 (BCD)) Peripheral port servicing setting enable. 00: 5% of cycle duration; 01: time defined in first half of the word Cycle monitor time. Settings are identical to those of the second half of the previous word Cycle monitor enable (Setting in 00 to 07 x unit; 99 5 max). 00:120ms (settings in bits 00-07 are disabled) ; 01: setting unit 10ms; 02: setting unit 100ms; 03: setting unit 1s Cycle time. 0000: variable (no minimum); 0001: up to 9999 (BCD). Minimal time is expressed in ms
Interrupt Processing (DM 6620 - DM 6639) take effect after the transfer to PC area, next time you start
working DM 6620 00 - 03 04 - 07 08 - 11 12 - 15 DM 6621 00 - 07 08 - 15 DM 6622 00 - 07 08 - 15 DM 6623 00 - 07 08 - 15 DM 6624 DM 6625 00 - 07 00 - 07 08 - 15 DM 6626 - DM 6627 DM 6628 00 - 15 00 - 03 04 - 07 08 - 11 12 - 15 Input constant for IR 00000 - IR 00002. 0: 0.8ms; 1: 1ms; 2: 2ms; 3: 4ms; 4: 8ms; 5: 16ms; 6: 32ms; 7: 64ms; 8: 128ms Input constant for IR 00003 and IR 00004. Settings are same as with bits 00-03 Input constant for IR 00005 and IR 00006. Settings are same as with bits 00-03 Input constant for IR 00007 and IR 00011. Settings are same as with bits 00-03 Input constant for IR 001. 0: 0.8ms; 1: 1ms; 2: 2ms; 3: 4ms; 4: 8ms; 5: 16ms; 6: 32ms; 7: 64ms; 8: 128ms Input constant for IR 002. Settings are same as with IR 001 Input constant for IR 003. Settings are same as with IR 001 Input constant for IR 004. Settings are same as with IR 001 Input constant for IR 005. Settings are same as with IR 001 Input constant for IR 006. Settings are same as with IR 001 Input constant for IR 007. Settings are same as with IR 001 Input constant for IR 008. Settings are same as with IR 001 Input constant for IR 009. Settings are same as with IR 001 Not used Interrupt enabled on IR 00000. (0: regular input; 1: interrupt input; 2: fast-reaction input) Interrupt enabled on IR 00001. (0: regular input; 1: interrupt input; 2: fast-reaction input) Interrupt enabled on IR 00002. (0: regular input; 1: interrupt input; 2: fast-reaction input) Interrupt enabled on IR 00003. (0: regular input; 1: interrupt input; 2: fast-reaction input)
High-speed counter settings (DM 6640-DM 6644) take effect after the transfer to PC area, next time you start working DM 6640 - DM 6641 DM 6642 00 - 15 00 - 03 04 - 07 08 - 15 DM 6643 - DM 6644 DM 6645 - DM 6649 DM 6650 00 - 15 00 - 15 00 - 07 08 - 11 12 - 15 DM 6651 00 - 07 Not used High-speed counter mode. 0: counting up/down; 4: incremental mode High-speed counter reset mode. 0: Z phase and software reset; 1: software reset only High-speed counter enable. 0: high-speed counter not used; 1: high-speed counter used with settings 00-07 Not used Not used Port settings. 00: standard (1 start bit, even parity, 2 stop bits, 9600bps); 01: Settings in DM 6651 (settings other than this cause error and turn on AR 1302) Area for 1:1 connection with a PC via peripheral port. 0: LR00LR15 Modes of communication. 0: Host link; 2: one-to-one PC link (slave); 3: one-to-one PC link (master); 4: NT link (settings other than this cause error and turn on AR 1302) Baud rate. 00: 1200 bps; 01: 2400 bps; 02: 4800 bps; 03: 9600 bps; 04: 19200 bps Frame format (Start bits/Data bits/Stop bits/Parity). 00:1/7/1/even; 01:1/7/1/odd; 02:1/7/1/none; 03:1/7/2/even; 04:1/7/2/odd; 05:1/7/2/none; 06:1/7/1/even; 07:1/7/1/odd; 08:1/7/1/none; 09:1/7/2/even; 10:1/7/2/odd; 11:1/7/2/none (settings other than this cause error and turn on AR 1302) Host Link Transmission Delay (0000 - 9999ms) (settings other than this cause error and turn on AR 1302)
08 - 15
DM 6652
00 - 15
DM 6653
00 - 07 08 - 15
Host Link (00 - 31 BCD) (settings other than this cause error and turn on AR 1302) Not used Not used Style. 0: move after 7 records; 1: keep only first 7 (no moving); 2-F: no records Not used Cycle Time monitor Enable. 0: detect long cycles as non-fatal errors; 1: do not detect long cycles Not used
DM 6654
00 - 15
Error log settings (DM 6655) take effect after the transfer to PLC controller DM 6655 00 - 03 04 - 07 08 - 11 12 - 15
Introduction
The whole work of PLC controller can be represented with a diagram shown on the following page. After turning on the power, PLC is first initialized (clearing IR, SR i AR areas, presetting system timers and checking I/O lines), and if no errors were detected, monitoring process, program execution, calling the I/O lines and serving the peripheral devices starts to occur in cycles.
assigned to both FAL and FALS instructions. To delete FALS error, PLC controller must be in PROGRAM mode, cause of error solved and then error code deleted.
Type
SEN-RET ERR
COIL DUPL
instruction.
JME(05) is used without JMP(04) with the same number of jump. Add the instruction JMP(04) with the same number or delete JME(05) that is not used. There is a subroutine that is not called by SBS(91). Add subroutine call to an appropriate place in the program or delete the subroutine.
Introduction
People were always difficult to except the fact that something is different from themselves or their way of thinking. It is probably one of the reasons why numerical systems other than decimal are hard to understand. Still, whether we like it or not, reality is quite different. Decimal system used in everyday life is by far less used than binary code, which is the working basis for millions of computers across the world. Each numerical system rests upon its basis. With decimal numerical system, this basis is 10, with binary it is 2, while with hexadecimal it equals 16. Value of each digit depends on its position in the number, represented in certain numerical system. Sum of values of each digit is the value of the number. Binary and hexadecimal systems are especially interesting for this course. Besides these two, decimal system will be detailed, too, for the sake of comparison. Although there is nothing new to tell about decimal system, we will give it a look for its relations with other numerical systems.
Operations of addition, subtraction, division and multiplication in decimal numerical system are well known, so we will not detail these.
Binary numerical system is quite different from the decimal that we got used to in common life. Its basis is 2 and each digit can have one of two values, 1 or 0. Binary numerical system is used for computers and microcontrollers, because it is much easier for processing than decimal. Usually, binary number consists of 8, 16 or 32 binary digits. Origins of this division are irrelevant for this course, so we will just take it for granted. Example: 10011011 - binary number with 8 digits To understand the logic of binary numbers, let us have an example. Lets assume that we have a cabinet with four drawers and that we should tell someone to bring us something from one of these. Nothing simpler, we could say in the lower row on the left and it would be quite sufficient. However, if it must be done without this kind of orientation, left, right, up, down and the likes, then we have a problem. There is a plenty of solutions for the situation, but we should look for the best and the most efficient! Let us mark the columns with A and rows with B. If A=1, we assume the upper row of drawers, and if A=0 we assume the lower. Similar with columns, B=1 is the left column and B=0 is the right column (following picture). Now, it is easier to explain which drawer we think of, just use one of the four combinations 00, 01, 10 or 11. This naming of each drawer is nothing more than binary nomenclature of numbers, that is, converting decimal numbers into binary system. In short, labels first, second, third and fourth are substituted with 00, 01, 10 and 11.
We still need to understand the logic of binary numerical system, i.e. how to get the decimal value of a number out of the sequence consisting of ones and zeros. This procedure is called conversion of binary number to decimal value. As it can be seen, conversion of binary number to decimal value is done by totaling the sum on the right. Depending on the position in the binary number, digits carry different weight multiplied by themselves, and totaling them all gives us an understandable decimal number.
Lets further assume that there are marbles in each of the drawers, 2 in the first, 4 in the second, 7 in the third and 3 in the fourth. Let the person opening the drawers also use the binary system. Under these conditions, question would be How many marbles are there in 01?, and the answer would be There are 100 marbles in 01! Notice that both question and answer are clear, although we did not use common terminology. Further, notice that two digits are sufficient for decimal numbers from 0 to 3, and that all values greater than 3 require additional binary digits. Thus, for 0 ~ 7 range, three digits are sufficient, four digits cover the range 0 ~ 15, etc. Simply put, the greatest decimal number that can be represented with n binary digits is 2 raised to power n, decreased by one. Example: 24-1 = 16 - 1 = 15 So, 4 binary digits cover decimal values from 0 to 15, including the values 0 and 15, which is 16 different values. Arithmetical operations that exist in decimal numerical system also apply in binary system. In this chapter, we will cover only addition and subtraction, for simplicity sake. Basic rules that apply to binary addition are: Addition works similar to decimal numerical system - we add the digits of the same weight. If both digits added are zero, the result remains zero, while 0 and 1 total 1. Two ones give zero, but one is carried to the left position.
We can do the check by converting these numbers to decimal system and adding them. Value of the first number is 10, value of the second is 9 and 19 as result, which means that operation was done correctly. Problem occurs when the result is greater than can be represented with given number of binary digits. There are various solutions, one of them being expanding the number of binary digits like in the example below.
Subtraction works on the same principles as addition does. Two zeros give zero in result, as do two ones, while subtraction of one from zero requires borrowing one from the higher position in binary number. Example: Conversion of numbers to decimal system gives as values 10 and 9, with the result of subtraction of 1, which is correct.
Example: Check, i.e. converting both numbers to decimal system, gives us value 228 which is correct. In order to calculate decimal equivalent of hexadecimal number, each digit of number should be multiplied by 16 raised to power equal to the position in the number and then added altogether.
Example: It is required to add the appropriate digits of a number, and if their sum equals 16, that position takes value 0. Values exceeding 16 should be added to the sum of digits on higher position. First number converted equals 14891, while other is 43457. Their sum is 58348, that is $E3EC converted to decimal numerical system. Subtraction works identically to previously mentioned systems. Example: Conversion gives us numbers 11590 and 5970, and the result of subtractions is 5620, that is $15F4 converted to decimal numerical system.
Conclusion
Binary numerical system remains the most commonly used, decimal system the most intelligible, while hexadecimal is somewhere in between. Its simple conversion to binary system makes it, besides binary and decimal, the most important numerical system to us.
Introduction
"Ladder" is the most frequent method of programming PLC controllers at present. We could divide instructions on the input ones for stating the conditions and the output ones that are executed when the conditions are fulfilled. By combining the two, logical blocks are created according to the logic of the system being automated. The purpose of this appendix is to introduce these instructions and to give details on flags and limitations of each of these. INDIRECT ADDRESSING Placing the character * ahead of operand from DM memory area allows us to use the indirect addressing. Simply put, value in the word *DM will be the address of the word that is the true operand. The picture below shows the MOV instruction with one operand given indirectly. The contents of location DM0003 equal 1433 which is actually a pointer marking the address DM1433 with contents 0005. The result of this instruction will be moving the
value 0005 from word DM1433 to word LR00. In order to use the indirect addressing, contents of the word that is the indirect operand have to be in BCD format. Besides that, value of the contents of indirect operand must not be greater than the number of addresses in DM area.
INSTRUCTION FORMAT Operand is the address of a word or a bit in PLC controller memory (most of the instructions has one or more operands). The common term for a word is just operand and in the case of bit we call it operand bit. Also, operand can be a direct numerical value marked by character # placed ahead of the value (i.e.. #12, #345 etc). The state of operand bit can be ON or OFF. ON means that its logic state equals 1, while OFF stands for 0. Besides these, terms set and reset are also used. Symbols SV and PV commonly appear in instruction syntax. These abbreviations stand for Set Value and Present Value and are most frequently encountered with instructions concerning counters and timers. DIFFERENTIAL INSTRUCTION FORM Differential form is supported by almost all of the instructions. What differs this form from the classical one is the character @ placed ahead of the name of the instruction. This form ensures that the instruction with condition fulfilled will not be executed in every cycle, but only when its condition changes state from OFF to ON. Differential from is commonly used because it has a lot of applications in real-life problems.
DIFFERENCE BETWEEN BINARY AND BCD REPRESENTATIONS OF WORD CONTENTS Generally, there are two dominant ways for comprehending values of memory locations. The first is binary and is related to the contents of the word which is treated as a union of 16 bits. Value is calculated as a sum of each bit (0 or 1) multiplied by 2 on power n, where n represents the position of bit in the word. Bit of the least value has position zero, while bit of greatest value has position 15. BCD is an abbreviation for Binary Coded Decimal number. It is nothing more than representing each decimal figure with 4 bits, similar to binary coding hence the name comes from. The picture below shows the difference between binary and BCD representations of the number. Same contents can be interpreted as either 612 or 264. For that reason, proper attention should be given to the format of the value within the word that will be sent to the instruction as an operand.
LADDER DIAGRAM INSTRUCTIONS Instructions may be divided into several basic groups according to their purpose :
Input instructions Output instructions Control instructions Timer/counter instructions Data comparison instructions Data movement instructions Increment/decrement instructions BCD/binary calculation instructions Data conversion instructions Logic instructions Special calculation instructions Subroutine instructions Interrupt control instructions I/O units instructions Display instructions High-speed counter control instructions Damage diagnosis instructions Special system instructions
Each of these instruction groups is introduced with a brief description in the following tables and with more detailed examples and descriptions afterwards.
Sequence Input Instructions Instruction LOAD LOAD NOT AND AND NOT OR OR NOT AND LOAD OR LOAD Mnemonic LD LD NOT AND AND NOT OR OR NOT AND LD OR LD
Code
0 0 0 0 0 0 0 0
Function Connects an NO condition to the left bus bar. Connects an NC condition to the left bus bar. Connects an NO condition in series with previous condition Connects an NC condition in series with previous condition Connects an NO condition in parallel with previous condition. Connects an NC condition in parallel with previous condition. Connects two instruction blocks in series. Connects two instruction blocks in parallel. the the the the
Instruction OUTPUT OUT NOT SET RESET KEEP DIFFERENTIATE UP DIFFERENTIATE DOWN
Mnemonic Code Function OUT 0 Outputs the result of logic to a bit. Reverses and outputs the result of logic to a OUT NOT 0 bit. SET 0 Force sets (ON) a bit. RESET 0 Force resets (OFF) a bit. KEEP 11 Maintains the status of the designated bit. Turns ON a bit for one cycle when the DIFU 13 execution condition goes from OFF to ON. Turns ON a bit for one cycle when the DIFD 14 execution condition goes from ON to OFF.
Sequence Control Instructions Instruction NO OPERATION END INTERLOCK INTERLOCK CLEAR JUMP JUMP END Mnemonic NOP END IL ILC JMP JME Code 00 01 02 03 04 05 --Required at the end of the program. It the execution condition for IL(02) is OFF, all outputs are turned OFF and all timer PVs reset between IL(02) and the next ILC(03). ILC(03) indicates the end of an interlock (beginning at IL(02)). If the execution condition for JMP(04) is ON, all instructions between JMP(04) and JME(05) are treated as NOP(OO). JME(05) indicates the end of a jump (beginning at JMP(04)). Function
Code
0 0
CNTR TIMH
12 15
Data Comparison Instructions Instruction COMPARE DOUBLE COMPARE BLOCK COMPARE TABLE COMPARE Mnemonic CMP CMPL (@)BCMP (@)TCMP
Code
20 60 68 85
Function Compares two four-digit hexadecimal values. Compares two eight-digit hexadecimal values. Judges whether the value of a word is within 16 ranges (defined by lower and upper limits). Compares the value of a word to 16 consecutive words.
Data Movement Instructions Instruction MOVE MOVE NOT BLOCK TRANSFER BLOCK SET DATA EXCHAGE SINGLE WORD DISTRIBUTE DATA COLLECT Mnemonic (@)MOV (@)MVN (@)XFER (@)BSET (@)XCHG (@)DIST
Code
21 22 70 71 73 80
Function Copies a constant or the content of a word to a word. Copies the complement of a constant or the content of a word to a word. Copies the content of a block of up to 1,000 consecutive words to a block of consecutive words. Copies the content of a word to a block of consecutive words. Exchanges the content of two words. Copies the content of a word to a word (whose address is determined by adding an offset to a word address). Copies the content of a word (whose address is determined by adding an offset to a word address) to a word.
(@)COLL
81
(@)MOVB (@)MOVD
82 83
Copies the specified bit from one word to the specified bit of a word. Copies the specified digits (4-bit units) from a word to the specified digits of a word.
Mnemonic SFT
Code
0/10
Function Copies the specified bit (0 or 1) into the rightmost bit of a shift register and shifts the other bits one bit to the left. Creates a multiple-word shift register that shifts data to the left in one-word units. Creates a shift register that exchanges the contents of adjacent words when one is zero and the other is not. Shifts a 0 into bit 00 of the specified word and shifts the other bits one bit to the left. Shifts a 0 into bit 15 of the specified word and shifts the other bits one bit to the right. Moves the content of CY into bit 00 of the specified word, shifts the other bits one bit to the left, and moves bit 15 to CY. Moves the content of CY into bit 15 of the specified word, shifts the other bits one bit to the left, and moves bit 00 to CY. Shifts a 0 into the rightmost digit (4-bit unit) of the shift register and shifts the other digits one digit to the left. Shifts a 0 into the rightmost digit (4-bit unit) of the shift register and shifts the other digits one digit to the right. Creates a single or multiple-word shift register that can shift data to the left or right.
(@)WSFT
16
(@)ASFT
17
ARITHMETIC SHIFT LEFT ARITHMETIC SHIFT RIGHT ROTATE LEFT ROTATE RIGHT ONE DIGIT SHIFT LEFT ONE DIGIT SHIFT RIGHT
REVERSIBLE SHIFT REGISTER
(@)ASL
25
(@)ASR
26
(@)ROL
27
(@)ROR
28
(@)SLD
74
(@)SRD
75
(@)SFTR
84
Code
38 39
Function Increments the BCD content of the specified word by 1. Decrements the BCD content of the specified word by 1.
BCD/Binary Calculation Instructions Instruction BCD ADD BCD SUBTRACT BDC MULTIPLY BCD DIVIDE BINARY ADD BINARY SUBTRACT BINARY MULTIPLY BINARY DIVIDE Mnemonic (@)ADD (@)SUB (@)MUL (@)DIV (@)ADB (@)SBB ()MLB (@)DVB
Code
30 31 32 33 50 51 52 53 54
Function Adds the content of a word (or a constant). Subtracts the contents of a word (or constant) and CY from the content of a word (or constant). Multiplies the content of two words (or contents). Divides the contents of a word (or constant) by the content of a word (or constant). Adds the contents of two words (or constants) and CY. Subtracts the content of a word (or constant) an CY from the content of the word (or constant). Multiplies the contents of two words (or constants). Divides the content of a word (or constant) by the content of a word and obtains the result and remainder. Add the 8-digit BCD contents of two pairs of words (or constants) and CY. Subtracts the 8-digit BCD contents of a pair of words (or constants) and CY from the 80digit BCD contents of a pair of words (or constants) Multiplies the 8-digit BCD contents of two pairs of words (or constants).
DOUBLE BCD (@)ADDL ADD DOUBLE BCD SUBTRACT DOUBLE BCD MULITPLY (@)SUBL
55
(@)MULL
56
57
Divides the 8-digit BCD contents of a pair of words (or constants) by the 8digits BCD contents of a pair of words (or constants)
Data Conversion Instructions Instruction BCD TO BINARY BINARY TO BCD 4 to 16 DECODER 16 to 4 DECODER ASCII CODE CONVERT Mnemonic (@)BIN (@)BCD (@)MLPX
Code
23 24 76
Function Converts 4-digit BCD data to 4-digit binary data. Converts 4-digit binary data to 4 digit BCD data. Takes the hexadecimal value of the specified digit(s) in a word and turn ON the corresponding bit in a word(s). Identifies the highest ON bit in the specified word(s) and moves the hexadecimal value(s) corresponding to its location to the specified digit(s) in a word. Converts the designated digit(s) of a word into the equivalent 8-bit ASCII code.
(@)DPMX
77
(@)ASC
86
Logic Instructions Instruction COMPLEMENT LOGICAL AND LOGICAL OR EXCLUSIVE OR EXCLUSIVE NOR Mnemonic (@)COM (@)ANDW (@)ORW (@)XORW (@)XNRW
Code Function
29 34 35 36 37 Turns OFF all ON bits and turns ON all OFF in the specified word Logically ANDs the corresponding bits of word (or constants) Logically ORs the corresponding bits of word (or constants) Exclusively ORs the corresponding bits of words (or constants) Exclusively NORs the corresponding bits of words (or constants). bits two two two two
Mnemonic (@)BCNT
Code
67
Function Counts the total number of bits that are ON in the specified block
Subroutine Instructions Instruction SUBROUTINE ENTER SUBROUTINE ENTRY SUBROUTINE RETURN MACRO Mnemonic (@)SBS SBN RET
Code
91 92 93
Function Executes a subroutine in the main program. Marks the beginning of a subroutine program. Marks the end of a subroutine program. Calls and executes the specified subroutine, substituting the specified input and output words for the input and output words in the subroutine.
MACRO
99
Interrupt Control Instructions Instruction INTERVAL TIMER INTERRUPT CONTROL Mnemonic (@)STIM (@)INT
Code
69 89
Function Controls interval timers used to perform scheduled interrupts. Performs interrupts control, such as masking and unmasking the interrupt bits for I/O interrupts.
Step Instructions Instruction Mnemonic Code STEP DEFINE STEP START STEP 08 Function Defines the start of a new step and resets the previous step when used with a control bit. Defines the end of step execution when used without a control bit. Starts the execution of the step when used with a control bit.
SNXT
09
Peripheral Device Control Instructions Instruction BCD TO BINARY BINARY TO BCD 4 to 16 DECODER 16 to 4 DECODER ASCII CODE CONVERT Mnemonic (@)BIN (@)BCD (@)MLPX
Code
23 24 76
Function Converts 4-digit BCD data to 4-digit binary data. Converts 4-digit binary data to 4-digit BCD data. Takes the hexadecimal value of the specified digit(s) in a word and turn ON the corresponding bit in a word(s). Identifies the highest ON bit in the specified word(s) and moves the hexadecimal value(s) corresponding to its location to the specified digit(s) in a word. Converts the designated digit(s) of a word into the equivalent 8-bit ASCII code.
(@)DPMX
77
(@)ASC
86
I/O Units Instructions Instruction Mnemonic Code Function 7-SEGMENT Converts the designated digit(s)of a word into an (@)SDEC 78 DECODER 8-bit, 7-segment display code. I/O Refreshes the specified I/O word. (@)IORF 97 REFRESH
Display Instructions Instruction Mnemonic Code Function MEASSAGE (@)MSG 46 Reads up to 8 words of ASCII code (16 characters) from memory and displays the message on the Programming Console or other Peripheral Device.
Instruction Mnemonic Code Function MODE Starts and stops counter operation, compares and (@)INI 61 CONTROL changes counter PVs, and stops pulse output. Reads counter PVs and status data. PV READ (@)PRV 62 COMPARE TABLE LOAD (@)CTBL 63 Compares counter PVs and generates a direct table or starts operation.
Damage Diagnosis Instructions Instruction Mnemonic Code FAILURE ALARM SEVERE FAILURE ALARM (@)FAL 06 Function Generates a non-fatal error when executed. The Error/Alarm indicator flashes and the CPU continues operating. Generates a fatal error when executed. The Error/Alarm indicator lights and the CPU stops operating.
FAL
07
Special System Instructions Instruction Mnemonic Code SET CARRY (@)STC 40 CLEAR (@)CLC 41 CARRY Function Sets Carry Flag 25504 to 1. Sets Carry Flag 25504 to 0.
Ladder symbol
Limitations There are no limitations, except that it is used as the first instruction from left to right. Flag Example It has no effect on any particular flag.
Pressing the button on the input 00 in the word IR000 activates the relay 00 on the output of PLC controller. Conditional instruction doesnt have be from input memory area; it can be any bit from other memory areas, i.e. SR area as in the following example.
When one of the instructions activates the bit 00 in the word SR200, bit 00 is activated in the output word IR010. In a word, every ON state of the bit at input causes the ON state at output.
Ladder symbol
There are no limitations, except that it is used as the first instruction from left to right. It has no effect on any particular flag.
Pressing the button on the input 00 in the word IR000 activates the relay 00 on the output of PLC controller. Conditional instruction doesnt have be from input memory area; it can be any bit from other memory areas, i.e. SR area as in the following example.
When one of the instructions activates the bit 00 in the word SR200, bit 00 is activated in the output word IR010. In a word, every ON state of the bit at input causes the OFF state at output.
Ladder symbol Limitations Flag Example There are no limitations. It has no effect on any particular flag.
After the LOAD instruction on 00 input, AND instruction is linked to input 01. Instruction on the right will be executed only when both of the conditions from the line are fulfilled, i.e. when both inputs 00 and 01 are in the ON state.
Ladder symbol Limitations Flag Example There are no limitations. It has no effect on any particular flag.
After the LOAD instruction on 00 input, AND NOT instruction is linked to input 01. Instruction on the right will be executed only when both of the conditions from the line are fulfilled, i.e. when input 00 is in ON state and input 01 is in OFF state.
Ladder symbol
Inputs 00 and 01 are in OR relation with the output 00. One of the inputs with ON state is sufficient to activate the output 00.
Ladder symbol
Inputs 000.00 and 000.01 are in OR NOT relation with the output 010.00. Bit 010.00 will retain ON state until bit 01 changes to ON state (thus breaking the connection, because it is normally closed). One of the inputs with ON state is sufficient to activate the output 00.
Ladder symbol Limitations Flag Attention should be paid not to overlap the instructions concerning the bit being controlled. It has no effect on any particular flag.
Example
Bit IR010.00 will remain ON as long as bit IR000.00 is ON. When bit IR000.00 changes to OFF, bit IR010.00 also changes to OFF. This instruction cannot be used for assigning ON or OFF states to more than one bit. In case that there is a need for assigning values to all of the bits in word, it can be done only one bit at a time.
Ladder symbol Limitations Flag Example Attention should be paid not to overlap the instructions concerning the bit being controlled. It has no effect on any particular flag.
Bit IR010.00 will remain ON as long as bit IR000.00 is OFF, while prelaskom changing bit IR000.00 to ON changes bit IR010.00 to OFF. This instruction cannot be used for assigning ON or OFF states to more than one bit. In case that there is a need for assigning values to all of the bits in word, it can be done only one bit at a time.
Ladder symbol
If condition state on bit IR000.00 changes to ON, state of bit IR200.00 also changes to ON. When condition state of bit IR000.00 changes from ON to OFF, bit IR200.00 remains ON.
If condition state on bit IR000.00 changes to ON, state of bit IR200.00 changes to OFF. When condition state of bit IR000.00 changes from ON to OFF, bit IR200.00 remains OFF.
Description
Instruction is used for maintaining the status of corresponding bit according to 2 inputs. The first input changes bit state to ON whenever the condition of the first line is fulfilled, while the second changes bit state to OFF whenever the condition of the second line is fulfilled. Bit state remains unchanged as long as inputs remain unchanged.
Ladder symbol
Flag Example
When the state of bit IR000.00 changes to ON bit IR200.00 also changes to ON. If bit IR000.01 changes to ON, bit IR200.00 changes to OFF and remains OFF until state of bit IR000.00 is ON again.
Flag
Example
Instruction changes state of bit IR200.00 to ON for duration of one cycle. If bit IR000.00 is ON, bit IR200.00 changes to ON for duration of one scan cycle.
Flag Example
If bit IR000.00 is ON, state of bit IR200.00 changes to OFF for duration of one scan cycle.
Ladder symbol Limitations Flag There are no limitations. Changes states of flags ER, CY, GR, EQ and LE to OFF.
Ladder symbol
Limitations Flag
Total number of JUMP and JUMP END pairs cannot exceed 99. Each value from 1-99 range can be used only once. It has no effect on any particular flag.
E.19 JUMP END - Location where the program execution continues after JUMP
Description Ladder symbol Instruction JME is used in pair with JMP instruction as integral part of it. If there is no JME assigned to JMP instruction, program will report an error.
Limitations
Total number of JUMP and JUMP END pairs cannot exceed 99. Each value from 1-99 range can be used only once.
Flag Example
When the state of bit IR000.00 changes to OFF, jump instruction skips all the instruction lines between itself and the corresponding JME instruction. Another way for using jump instruction is assigning value 0 to JMP instruction. Unlimited number of jumps can be programmed in this way and the destination for each of these is a unique location defined with instruction JUMP END with index 0. Instruction JUMP END with parameter 0 may be used multiple times in the program. In that case, program execution after the jump defined with JUMP (index 0) continues from the first following JUMP END instruction with this index. Time of execution with this form of jump function is somewhat longer, as the program must first locate the closest appropriate JUMP END instruction. The following example demonstrates programming greater number of jump functions ending at the same destination: Changing the state of bits IR000.00 or IR000.03 to OFF executes the jump to the line containing instruction JME.
- 999.9 range. The most common and the simplest way to apply a timer is to have a constant here, whether given directly or programmed on some memory location (if parameter SV is given as a constant, it is necessary to put character # ahead of value). Ladder symbol
Limitations The number of timer cannot be used for counter or another timer. Flag Example Affects the appropriate flag in TC area.
Changing the state of bit IR000.00 to ON starts the timing (in this case, time is 100*0.1s=10
seconds). After the passing of given period of time, the appropriate bit IM002 changes state to ON, thus fulfilling the condition for executing the instructions on the right (in this case bit IR010.01 changes state to ON). Condition bit must be constantly ON for a given time period for bit TIM002 to be set. If condition state changes to OFF during the given time period, timer resets and goes back to the beginning of period.
Limitations The number of timer cannot be used for a counter or another timer. Value of SV must be in 00.00 - 99.99 range. Recommended range for a number of timer is 000 - 003. Flag Affects the appropriate flag in TC area.
Example
Changing the state of condition bit IR000.00 to ON starts the countdown (in this case for 27*0.01s=0.27 seconds). After the passing of given period of time, the appropriate bit IM003 changes state to ON, thus fulfilling the condition for executing the instructions on the right (in this case bit IR010.01 changes state to ON). Condition bit must be constantly ON for a given time period for bit TIM002 to be set. If condition state changes to OFF during the given time period, timer resets and goes back to the beginning.
Ladder symbol
Limitations The number of timer cannot be used for a counter or another timer. Flag Affects the appropriate flag in TC area.
Example
When the state of bit IR000.00 changes from OFF to ON, counter value decreases to 299, next change of bit IR000.00 lowers it to 298 and so on. When counter value reaches zero, state of bit CNT004 changes to ON, fulfilling the condition for executing instructions on the right (in this case, it is a normally closed contact that will open).
Ladder symbol
Limitations Number of a counter cannot be used for a timer or another counter. Flag Example Affects the appropriate bit in TC area.
When the state of bit IR000.00 changes from OFF to ON, counter value decreases to 122, next change of bit IR000.00 lowers it to 121 and so on. When the state of bit IR000.01 changes counter value increases by one. When counter value reaches zero, state of bit CNT006 changes to ON
fulfilling the condition for executing instructions on the right (in this case, it is normally closed contact that will open). ON state of bit IR00.02 will return the counter to a given value, while a bit CNT006 returns it to OFF state.
Flag GR EQ LE
Ladder symbol
Limitations
Comparations that include the current values of timer or a counter require values in BCD format. Checking the flags GR, LE and EQ should take place immediately after the CMP(20) instruction, because another instruction may affect their states. Affects the flags GR, LE and EQ in SR memory area.
Flag
Example
When the state of bit IR000.00 changes to ON, condition for comparing the values of memory locations IR200 and IR201 is fulfilled. If value of IR200 is greater than IR201, state of bit IR010.00 changes to ON. If value of IR200 is lesser than IR201, state of bit IR010.02 changes to ON. In case of equal values of locations IR200 and IR201, state of bit IR010.01 changes to ON.
3. Cp1+1, Cp1 is greater than Cp2+1, Cp2 - state of bit GR in SR memory area changes to ON.
Flag GR EQ LE
OFF OFF ON
OFF ON OFF
ON OFF OFF
Ladder symbol
Limitations Flag
Checking the flags GR, LE and EQ should take place immediately after the CMP(20) instruction, because another instruction may affect their states. Affects the flags GR, LE and EQ in SR memory area.
Example
When the state of bit IR000.00 changes to ON, condition for comparing the values of memory locations IR200+IR2001 and HR00+HR01 is fulfilled. If value of the first operand is greater, state of bit IR010.00 changes to ON. If value of the first operand is lesser, state of bit IR010.02 changes to ON. In case of equal values, state of bit IR010.01 changes to ON.
Ladder symbol
Limitations Values of CB block must be in order, so that the value of location CB is lesser than value of CB+1. Flag Example It has no effect on any particular flag.
Comparation will be executed for as long as the state of condition is ON. If value of location HR00 equals 0210, then it will be set between DM0014 and DM0015 correspoding to the second bit of the result word LR05.
Limitations Locations DM 6144 - DM6655 cannot be used for the result word. Flag It has no effect on any particular flag.
Example
Comparation will be executed as long as the state of bit IR000.00 is ON. If value of location HR00 is 0210, then it equals the values of locations DM0002, DM0006, DM0010 and DM0014. Accordingly, the appropriate bits of the word IR216 change states to ON (they are set).
Description
Instruction MOVE is used for moving the contents of one memory location to another. The operand S represents the word whose contents should be moved to a word that is operand D. Operand S can be a constant, if the character # is placed ahead of fourdigit value.
Ladder symbol
Limitations
Words DM6144 - DM6655 cannot be used as operand D. The current state of timer or counter also cannot be used as operand D. Instruction BSET(17) should be used for that purpose. Flag EQ from TC area changes state to ON when all zeros are written into operand D. Therefore, flag EQ provides us with information if the moved value equals zero. In case of error, state of flag ER changes to ON.
Flag
Example
Upon fulfilling the condition on bit IR00.00, instruction moves the contents of memory location IR001 to memory location HR05. Every bit of word IR001 is copied to the appropriate bit of word HR05. Instruction MOV can be very helpful when reading the signals controller sends or receives from peripheral devices. Input states are moved to a working area, where they are processed and then they are sent to the output points of PLC controller.
Description
Instruction MOVE NOT is used for moving the complemented (inverted bits, bit 0 becomes 1and vice versa) contents of one memory location to another. The operand S represents the word whose complemented contents should be moved to a word that is operand D. Operand S can be a constant, if the character # is placed ahead of four-digit value.
Ladder symbol
Limitations
Words DM6144 - DM6655 cannot be used as operand D. The current state of timer or counter also cannot be used as operand D. Instruction BSET(17) should be used for that purpose. Flag EQ from TC area changes state to ON when all zeros are written into operand D. Therefore, flag EQ provides us with information if the moved value equals zero. In case of error, state of flag ER changes to ON.
Flag
Example
Upon fulfilling the condition on bit IR00.00, instruction moves the complemented contents of memory location IR001 to memory location HR05. Every bit of word IR001 is complemented and copied to the appropriate bit of word HR05.
address of starting source memory location, while D represents the address of the starting destination memory location. Ladder symbol
Limitations Words DM6144 - DM6655 cannot be used as operand D. S and S+N have to be from the same memory area. D and D+N also have to be from the same memory area. N has to be a BCD number. Flag Example State of ER flag changes to ON if N is not a BCD number or in case that S and S+N, D and D+N are not from the same memory area.
Upon fulfilling the condition on bit IR00.00, instruction moves the contents of ten memory locations IR200 - IR210 to memory locations HR00 - HR10.
Limitations Words DM6144 - DM6655 cannot be used as operands St and E. Address in the operand St has to be lesser than the addreess in operand E. Both the operands St and E have to be from the same memory block. Flag State of ER flag changes to ON if St and E do not belong to the same memory block or in the case that the second parameter is greater than first.
Example
Upon fulfilling the condition on bit IR00.00, instruction moves the contents of memory location IR000 (zero) to locations HR00 - HR05. In this way, it is possible to clear the memory block or to set it to a certain value. Same effect could be achieved if constant #0000 was used instead of memory location IR200 containing all zeros.
Flag Example
State of ER flag changes to ON if non-existing indirect address of location from DM area is used as an operand.
Upon fulfilling the condition on bit IR00.00 instruction exchanges the contents of memory locations IR000 (all zeros) and IR201 (all ones). As a result, memory location IR201 contains all ones and memory location IR200 contains all zeros.
Ladder symbol
Limitations
Words DM6144 - DM6655 cannot be used as operand DBs. Address of the operand DBs has to be in the same memory block with BDs + shift. The argument C has to be BCD number. EQ flag changes state to ON when the contents of memory location in parameter S equal zero. State of ER flag changes to ON in case of error.
Flag Examples
Bits 12-15 in the word LR10 from parameter C formthe number 0011, which is in 0 -
8 range. Therefore, the instruction is used in the first form. Upon fulfilling the condition on bit IR00.00, instruction copies the constant #00FF to an address calculated by adding the base address (in this case HR10) and three lower numbers from the word LR10.
Bits 12-15 in the word IR216 from parameter C form the number 0101, which exceeds 8. Therefore, the instruction is used in the second form. The example above shows how to create a stack between memory locations DM0001 and DM0005. Location DM0000 is used as a pointer marking the top of the stack.
1. If four bits have value between 0 and 7, the instruction copies the word D to an address calculated by adding the address of the word SBs with the rest of the word C. 2. If value of four bits of word C equals 9, instruction creates the FIFO stack (First In First Out). The rest of the bits of the word C determines the number of the words in stack (000 to 999), while SBs represents the pointer marking the top of the stack. 3. If value of four bits of word C equals 8, instruction creates the LIFO stack (Last In First Out). The rest of the bits of the word C determine the number of the words in stack (000 to 999), while SBs represents the pointer marking the top of the stack. Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand DBs. Parameter C has to be a BCD number. SBs and SBs + shift have to be from the same memory block. EQ flag changes state to ON when the contents of memory location in parameter S equal zero. State of ER flag changes to ON in case of error, such as overflow or assigning non-BCD contents to parameters S or D.
Examples
Bits 12 - 15 in the word IR200 form 0, while the rest of the word forms value 005,
defining stack size to be 5 locations. Upon fulfilling the condition on bit IR000.00, instruction copies the contents of word LR00 to an address calculated by adding the address DM0000 with the shift defined in the word IR200 (lower three digits) : DM0000 + 005 = DM0005.
Bits 12 - 15 in word IR216 form a number 9, while the rest of the word forms value 005, defining the stack size to be 5 locations. Number 9 as the first digit of word IR216 determines that the instruction works with FIFO stack. Upon fulfilling the condition on bit IR000.00, instruction moves the contents of the stack by one address, so that the element that first came into the stack (AAAA) is copied to the word IR001, while the stack pointer decreases by one.
Bits 12 - 15 of the word IR216 form a number 8, while the rest of the word forms value 005, defining the stack size to be 5 locations. Number 8 as the first digit of the word IR216 means that the instructions works with LIFO stack. Upon fulfilling the condition on bit IR000.00, instruction copies the value of the last word that came into stack to the location IR001, while the stack pointer decreases by one.
Ladder symbol
Values of destination and source bits has to be between 0 and 15. Words DM6144 DM6655 cannot be used as operands Bi or D.
Ladder symbol
Value of destination and source bit has to be between 0 and 15. Words DM6144 DM6655 cannot be used as operands Bi or D. ER flag changes state to ON if at least one of three digits in the word Di isnt in the specified range (between 0 and 3). The examples below show copying digits from one word to another depending on the value of word Di.
Ladder symbol
E has to be greater or equal to the address in parameter St. ER flag changes state to ON if St is lower address than E or if they are not in the same memory area.
Upon fulfilling the condition on bit IR000.00, instruction uses one-second clock on bit 255.02 in order to move the contents of the word HR00. Bit IR200.00 will be ON every
Ladder symbol
Limitations Flag
E has to be greater or equal address to the one from parameter St. Words DM6144 DM6655 cannot be used as operands St and E. ER flag changes state to ON if St is lower address than E or if they are not from the same memory area.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 se ne mogu koristiti za operand Wd. EQ flag changes state to ON if the contents of the word Wd equal zero. CY flag takes the value of the highest bit of theword Wd and changes state accordingly.
Limitations Flag
Words DM 6144 - DM6655 cannot be used as operand Wd. EQ flag changes state to ON if the contents of the word Wd equal zero. CY flag takes the value of the lowest bit of the word Wd and changes state accordingly.
E.41 ROTATE LEFT - Rotates the contents of a word for 1 bit to the
left
Instruction shifts the contents of the word Wd for one bit to left, using the carry bit CY. Bit from CY is then moved to the lowest bit to close the circle.
Limitations Flag
Word DM6144 - DM6655 cannot be used as operand Wd. EQ flag changes state to ON if the contents of the word Wd equal zero. CY flag takes value of the highest bit of the word Wd and changes state accordingly.
Limitations Flag
Word DM6144 - DM6655 cannot be used as operand Wd. EQ flag changes state to ON if the contents of the word Wd equal zero. CY flag takes value of the lowest bit of the word Wd and changes state accordingly.
E.43 ONE DIGIT SHIFT LEFT - Shifts word for one digit to the left
Description Ladder symbol Instruction shifts the contents of the word St for one digit to the left. The highest digit of the word E is irreversably lost and the lowest digit of the word St takes zero value.
Limitations
Words DM 6144 - DM6655 cannot be used as operands St and E. Operands St and E have to be in the same memory area, while the address of operand E has to be greater or equal to the address of operand St. ER flag changes state to ON if St and E are not from the same memory area or in case that the address of parameter E is lower than the address of parameter St.
Flag
E.44 ONE DIGIT SHIFT RIGHT - Shifts word for one digit to the
right
Description Instruction shifts the contents of the word St for one digit to the right. The lowest digit of the word E is irreversably lost and the lowest digit of the word St takes zero value.
Ladder symbol
Limitations
Words DM 6144 - DM6655 cannot be used as operands St and E. Operands St and E have to be in the same memory area and the address of the operand E has to be lower or equal to the address of the operand St. ER flag changes state to ON if St and E are not from the same memory area or in case that the address of parameter E is higher than the address of parameter St.
Flag
Ladder symbol
Limitations
Words DM 6144 - DM6655 cannot be used as operands C, St and E. Operands St i E have to be from the same memory area and the address of the operand St has to be lower or equal to the address of the operand E. ER flag changes state to ON if St and E are not from the same memory area or the address of parameter St is higher than the address of parameter E. CY changes
Flag
according to the state of the lowest bit of the word St or the highest bit of the word E, depending on the shifting direction set in the control word C. Example
First instruction line determines the shifting direction, second determines input, third determines the clock and fourth determines reset. The shifting direction depends on the bit 12 of the control word. Depending on it, data bit moves to CY carry bit, while the opposite end becomes 0 or 1 depending on bit 13 of the control word. Condition for executing this instruction is located in the bit IR000.04, but besides this it is necessary to have the clock (bit 14 of the control word) ON. If the instruction is being executed with reset bit (bit 15 of the control word) OFF, all data bits as well as carry bit CY are set to 0.
Ladder symbol
Limitations Flag
Words DM 6144 - DM6655 cannot be used as operand Wd. ER flag changes state to ON if the contents of the word Wd are not BCD. EQ flag changes state to ON when the result of incrementation equals 0.
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand Wd. ER flag changes state to ON if the contents of the word Wd are not BCD. EQ flag changes state to ON when the result of decrementation equals 0.
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Au and Ad are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the result is greater than 9999. Upon fulfilling the condition on bit IR000.02, carry bit is cleared and the value of memory location IR200 is added to the constant 6103. The result is stored in the memory location DM0100. The example further shows how to save the carry bit if the result was greater than 9999. If the result exceeded 9999, memory location DM0101 will take value 1 and if not it will take value 0. In this way, locations DM0100 and DM0101 form one 32-bit word, which may prove to be useful.
Example
Ladder symbol
Limitations Flag
Words DM 6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Mi and Su are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the result is negative.
Example
Carry bit status should be checked before the subtraction. It is best to clear it with CLC instruction. The check is more necessary after the subtraction, because there is chance of misinterpretation. If the carry bit is set (value is 1) the result of subtraction is negative and the result word contains 10 complement of the real result. When the condition is fulfilled on bit IR000.02, carry bit is cleared and the value of memory location DM0100 is subtracted from value of location IR201. The result is stored in the location HR10. Upon subtraction, carry bit CY is checked. If it is set, condition on SR255.04 (the very carry bit) will be fulfilled, clearing it anew and
commencing the new subtraction in order to get the real result of the first subtraction. The second subtraction instruction subtracts the value of the result word HR10 from zero, storing the result into HR10 again. It is useful to set a certain bit for a programmer to have information on negative result. In the following example this bit is HR1100. Changing the state of carry bit to OFF doesnt change the state of bit HR1100.
Character @ ahead of SUB(31) represents the differencial form of the instruction, or simply put, this instruction will not execute non-stop while the condition is fulfilled. Only changing the condition from OFF to ON executes the instruction. This means that the second subtraction instruction wont take place immediately after the first one. Before executing the second instruction, it is necessary that bit IR000.02 changed state from OFF to ON at least once.
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Mr and Md are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the there is a carry in the result.
Example
Upon fulfilling the condition on bit IR000.00, instruction multiplies the values of memory locations IR013 and DM0005. The result is stored into two sequential memory locations HR07 and HR08. The result is stored so that HR08 contains higher bits and that HR07 contains lower bits.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Dd and Dr are not BCD. EQ flag changes state to ON if the result equals 0.
Example
Upon fulfilling the condition on bit IR000.00, instruction divides the value of memory location IR216 by the value of memory location HR09. The result is stored into two sequential memory locations DM0017 and DDM0018. The result is stored so that DM0017 contains round number and DM0018 contains the fraction.
Ladder symbol
Limitations Flag
Word DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Au and Ad are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if there is a carry in the result.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Mi, Mi+1, Su, Su+1 are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the result is negative.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of words Mr, Mr+1, Md and Md+1 are not BCD. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if there is a carry in the result.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in two cases, if the contents of words Dd, Dd+1, Dr and Dr+1 are not BCD or if the contents of locations Dr and Dr+1 equal zero. EQ flag changes state to ON if the result equals 0.
Limitations Flag
Words DM 6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the result is greater FFFF.
OF flag changes state if the result is greater than +32.767 (7FFF). UF flag changes state if the result is lower than od +32.768 (7FFF). Example The example demonstrates how the binary addition works. As A6E2+80C5 equals 127A7, carry bit CY is set and the value of location R+1 (which is, in this case, on HR11) changes to 1 to enable easier handling of the result on addresses R and R+1 later in the program. If overflow occurs, carry bit CY will be set, fulfilling the condition on bit SR255.04. This condition controls the lower MOV instruction, which sets 1 to location HR11.
Ladder symbol
Limitations Words DM6144 - DM6655 cannot be used as operand R. Flag ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals 0. CY flag changes state to ON if the result is negative. OF flag changes state if the result is greater than +32.767 (7FFF) UF flag changes state if the result is lower than +32.768 (7FFF).
Example The example subtracts the value of location LR00 increased by the state of carry bit CY from the value of location IR200. As the result is positive, carry bit CY will not be set. In case of negative result, location HR01 would contain 2complement of the result, so that a conversion would be necessary for getting the real result.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state u ON in case of error. EQ flag changes state u ON if the result equals 0.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R and the instruction cannot be used for dividing signed numbers. ER flag changes state to ON in case that Dr contains value 0. EQ flag changes state to ON if the result equals 0.
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON if the contents of the word S are not BCD. EQ flag changes state to ON if the result equals 0.
Example
Upon fulfilling the condition on bit IR000.00, instruction changes the contents of memory location IR200 so that its numerical value remains unchanged; in other words, only the representation of the locations contents changes. If the contents of the location IR200 is 164 decimal, this instruction would convert it to 0000000010100100. One of the purposes of this instruction is preparing the contents of memory location for one of the binary operations.
Ladder symbol
Word DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals 0.
Upon fulfilling the condition on bit IR000.00, instruction changes the contents of memory location IR200 so that its numerical value remains unchanged; in other words, only the representation of the locations contents changes. If the contents of location IR200 is 000000101100100 binarny, this instruction would convert it to 740 decimaly. One of the purposes of this instruction is preparing the contents of memory location for one of BCD operations.
The first digit to be converted, as well as the number of digits to be converted, is determined in the control word Di. If the number of digits for conversion is greater than the number of digits remaining in the word S, then the missing digits are taken from the starting digit anew. The structure of the control word Di is shown on the picture below.
Some of the combinations of control word values along with their meaning are given below:
Ladder symbol
Limitations Flag
Two rightmost digits of the word Di have to be between 0 and 3. Words DM6144 DM6655 cannot be used as operand R. ER flag changes state to ON in case that (R + number of digits) exceeds the range of a given memory block.
Example
Upon fulfilling the condition on bit IR000.00, instruction converts three digits from the digit no.1 in the word DM0020. As there are three digits to be converted, the result will take three memory locations starting from HR10. Digit 0 in the word DM0020 is not converted.
Precise place for storing the converted value in the word R is determined by a control word Di. The same word also determines the number of words to be converted, starting from the address of the word SB. For this example, the control word would be 0001.
The first digit to be converted, as well as the number of digits to be converted, is determined in the control word Di. If the number of digits for conversion is greater than the number of digits remaining in the word S, then the missing digits are taken from the starting digit anew. The structure of the control word Di is shown on the picture above. Some of the combinations of control word values along with their meaning are given below:
Ladder symbol
Limitations Flag
Two rightmost digits of the word Di have to be between 0 and 3. Words DM6144 DM6655 cannot be used as operands R, SB and Di. ER flag changes state to ON if (SB + number of digits) exceeds the range of a given memory block or if the word to be converted equals zero.
Example
Upon fulfilling the condition on bit IR000.00, first DMPX instruction converts two words, IR200 and IR201. The control word is 0010, meaning that two words are converted (digit 1) and stored starting from the zero digit in the result (rightmost digit 0). After the first DMPX instruction, the second one is executed, converting two words from addresses LR10 and LR11 and storing them in the result word HR10, starting from the digit no.2. Therefore, the word HR10 contains four converted words in the following order: IR200, IR201, LR10, LR11. More detailed explanation of how the instruction works is given on the following picture.
Presuming that binary value is the one from locations IR200, IR201, LR10 and LR11, as in example, the result of conversion in the result word HR10 would be 5B7D.
Odd parity bit behaves in similar fashion, but with the opposite function. Its purpose is to ensure that the number of ones in ASCII code is always odd. The following picture represents interpreting the value of word Di and the picture after that gives several versions of values of the word Di and how they affect the instruction.
Ladder symbol
Limitations Flag
Two lower digits of the words Di must have values betweenmoraju imati 0 and 3. Words DM6144 - DM6655 cannot be used as operand D. ER flag changes state to ON if two rightmost digits of the word Di do not fall within the specified range (0-3) or the result word exceeds the boundaries of memory area.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand Wd. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals zero.
Description
Instruction executes the operation logical AND on words I1 and I2. The result of the operation is stored into word R. Operation logical AND puts one in the result only if the same position of words I1 and I2 also contain one.
Ladder symbol
Limitations Flag
Words DM 6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals zero.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals zero.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals zero.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. ER flag changes state to ON in case of error. EQ flag changes state to ON if the result equals zero.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand R. Word N cannot have zero value. ER flag changes state to ON in case that N isnt BCD number or in case that SB and SB+(N-1) dont belong to the same memory area. EQ flag changes state to ON if the result equals zero.
all the instructions between SBN(92) and the first RET(92) instruction are executed. Upon processing the RET instruction, program returns to the line immediately following the instruction SBS which called the subroutine in the first place. The same subroutine may be called from several places in the program.
Ladder symbol
Limitations Flag
Number of subroutine has to be in 000 - 049 range. ER flag changes state to ON when non-existing subroutine is called, when the subroutine calls itself or when the subroutine being executed at the moment is called.
Ladder symbol
Limitations Flag
Number of the subroutine has to be in 000 - 049 range. Each number may be used only once. It has no effect on any particular flag.
Ladder symbol
Limitations Flag
Number of the subroutine has to be in 000 - 049 range. Each number may be used only once. It has no effect on any particular flag.
Ladder symbol
Limitations Flag
Number of the subroutine has to be in 000 - 049 range. Each number may be used only once. ER flag changes state to ON when non-existing subroutine is called, when the subroutine calls itself or when the subroutine, being executed at the moment, is called.
Example
Instruction MCRO calls the subroutine with the number 010. Contents of words DM0010 - DM0013 is copied to SR232 - SR235 and upon execution of the instruction, contents of words SR236 - SR239 is copied to the words DM0020 - DM0023.
C1 000 001 002 003 004 100 200 Mask/unmask interrupts Clear the interrupt input
Function
Read the current mask for interrupt inputs Reset decrement counter and unmask interrupts Reset increment counter and unmask interrupts Mask all interrupts Unmask all interrupts
NOTE: Value of the word C1 004 refers to models CPM2A/CPM2C of PLC controller, so it will not be detailed here.
C1=000 Function is used for masking and unmasking the interrupt inputs 00003 - 00006. Masked interrupts are registered, but the part of the program assigned to them will not be executed until the mask is off. Upon unmasking interrupt input, interrupt routine will immediately take place (unless, in the meantime the bit corresponding to that interrupt input is reset with the instruction INT, parameter C1=001). The input being masked or unmasked is determined by parameter C2 according to the following scheme (bear in mind that we work with bits and not with digits of the word C2). Bits 4, 5, 6...15 should be set to zero. All interrupt inputs are masked upon starting the PLC controller.
C1=001 Function resets the registered interrupts, so that interrupt routine cannot take place upon unmasking the interrupt input. Bits 4, 5, 6...15 of the word C2 should be set to zero.
C1=002 Function reads the status of the mask for interrupt inputs 00003 - 00006 and stores the read state into the word C2. Interrupt input is masked if the state of the corresponding bit equals 1. Bits 00 - 03 correspond to interrupt inputs 00003 - 00006.
C1=003 Function restarts the interrupt inputs in the counter mode. The current counter value (SR240 - SR243) is set to the starting state and the interrupt is unmasked. If C1=003, decremental counter is restarted, while in the case of C1=004 incremental counter is restarted. As CPM1A model of PLC does not feature incremental counter, this option should not be used. When using the options C1=003 or C1=004 differencial form of the instruction shoud be used @INT or else the current counter state (PV) will be reset to the starting state (SV) and the interrupt will never be generated. Writing the value 0000 to the starting counter state and executing the INT instruction with parameter C1=003 stops the counter and disables interrupts. To start the counter again, non-zero value should be written to a starting value SV and the instruction INT executed. Interrupts in the counter mode can be masked by executing the instruction INT with parameter C1=000 and set corresponding bit in C2. If same is done, but with 0 for the appropriate position in the word C2 interrupt input will behave as a regular interrupt ulaz and not as counter interrupt input.
C1=100 Function masks all the interrupts including the interval timer interrupts and the high-speed counter interrupts. Masked interrupts are registered, but are not executed. This function is also called a global interrupt mask and it does not affect the masks of specific interrupts. This option should be used for temporary disabling all the interrupts. It is cmmonly used in pair, one function masks all the interrupts and the other one unmasks them. Function cannot be used within the interrupt routine.
C1=200 Function unmasks all the interrupts including the interval timer interrupts and the highspeed counter interrupts. If the specific interrupt is masked, global unmasking does not affect the state of the specific interrupt input state. Function cannot be used within the interrupt routine.
Ladder symbol
Flag
ER flag changes state to ON if: C1 is not 000, 001, 002, 003, 004, 100 or 200. C2 is not in 0000 - 000F range. INT instruction is executed with C1=100 or 200 within the interrupt routine. INT instruction is executed with C1=100 when all inputs are already masked. INT instruction is executed with C1=200 when all inputs are already unmasked.
Function Start the interrupt timer with only one timer Start the timer with periodical interrupts Read the current timer value Stop the timer
C1=001 or 003 C2 can be either a constant or an address of a word in PLC controller memory. C2=constant If C2 is a constant, then it represents the starting value of decremental counter in BCD format (form 0000 to 9999 which is equivalent to 0 - 9.999 ms) and C3 represents the number of the interrupt routine (from 000 to 049). C2=address of a word in memory If C2 is a word in PLC controller memory, then its contents is a starting value of decremental counter in BCD format. Cotents of the word C2+1 represents the measurement unit (BCD, 0005 - 0320) in 0.1s decrements. Interval is, in that case, 0.5 - 32ms. Starting value of the timer is calculated as C2 * (C2+1) * 0.1s. C3 represents the number of the interrupt routine. C1=006 Function reads the current timer state. Parameter C2 represents the memory address where the read timer state is stored, while C2+1 stores the measurement unit. Parameter C3 reresents the memory address where the data concerning the time passed since the last decrementation of timer in BCD format is stored in 0.1s units. C1=010 Function stops the timer. Parameters C2 and C3 are without function and should be set to 0000.
Ladder symbol
Flag
ER flag changes state to ON if C1 is not 000, 003, 006 or 010 or in case that the number of interrupt routine is not within 0000 - 0049 range.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand D. ER flag changes state to ON in case of error.
Example
we want to know the state of certain bit without waiting it to be refreshed in the course of regular cycle of refreshing the inputs and outputs of PLC controller (IR000 IR019). Ladder symbol
Limitations Flag
Address of the word St has to be lower or equal to the address of the word E. ER flag changes state to ON if words St and E do not belong to IR000 - IR019 range or in case that the address of the word St is greater than the address of the word E.
Ladder symbol
Limitations Flag
Words DM6144 - DM6655 cannot be used as operand FM. ER flag changes state to ON in case of error.
P 000
Function Designates the input of PLC controller that will be used as highspeed counter (000.00, 000.01 and 000.02). Determines monophase signal of logical zero with no acceleration/deceleration (outputs 010.00 and 010.01) Determines mono-phase signal of logical zero with trapezoid acceleration/deceleration (output 010.00)
Determines mono-phase signal "1" with no acceleration/deceleration (output 010.01) Designates interrupt input 0 in counter mode (input 000.03) Designates interrupt input 1 in counter mode (input 000.04) Designates interrupt input 2 in counter mode (input 000.05) Designates interrupt input 3 in counter mode (input 000.06)
NOTE: * refers to CPM2A/CPM2C PLC controller models.
P1 000 000
New value of the current state (PV)
Function Starts comparing the current value with the values from comparison table (CTBL) Stops comparing the current value with the values from comparison table (CTBL) Changes the current value PV of high-speed counter or interrupt input in counter mode Stops the pulse output Changes the current state of pulse output Stops the synchronized pulse output
000
New value of the current state (PV)
006*
000
C=000 or C=001 Function starts or stops comparing the current value of high-speed counter PV with the values from the comparison table created with instruction CTBL. If the comparison table wasnt created ahead of executing the INI instruction, the error occurs. Generally, when INI instruction with C=000 is used, differential form @INI is recommended, because one set of starting comparisons is sufficient. C=002 Function changes value of the current state of the high-speed counter or the interrupt in the counter mode.
Fast counter PV ( P=0 ) Function changes the contents of PV to 8-digit BCD number contained in the words P1 and P1+1. If differential-phase mode or up/down input mode is used, PV can have
value between F838 8608 and 0838 8607, where F as the first digit is treated as a minus sign. PV can have value between 000 0000 and 1677 7215 in incremental mode. Interrupt counter input PV ( P=100, P=101, P=102, P=103) Function changes the contents of PV to 4-digit hexadecimal number from the word P1 (from 0000 to FFFF). C=003 Function stops the pulse output. C=004 Function changes the value of the current PV pulse output state to an 8-digit BCD value in the words P1 and P1+1. Change cannot be done while the pulse output is in function. New value can be from -16.777.215 to +16.777.215. Bit no.15 of the word P1+1 behaves like a sign: 0 stands for positive, 1 stands for negative number. C=003 Function stops the synchronized pulse output. Ladder symbol
Limitations
If CPM1 or CPM1A PLC controller is used, parameter P has to be 000 and parameter C has to be 000, 001, 002 or 003. P1 has to be 000 if C is not 002 or 004. If an address from DM memory area is used as parameter P1, reading and writing to that location has to be enabled. ER flag changes state to ON if comparison table exceeds one memory area.
Flag
Description
Instruction controls the current state of high-speed counter, pulse output, interrupt input in counter mode or input frequency for synchronized input. There are several functions depending on parameters P, C and D. Parameter P defines if either high-speed counter or pulse output will be controlled with this instruction.
P 000
Function Designates the input of PLC controller that will be used as highspeed counter (inputs 000.00, 000.01 and 000.02). Designates input frequency for synchronized pulse input (inputs 000.00, 000.01 and 000.02). Determines mono-phase signal of logical zero with no acceleration/deceleration (outputs 010.00 and 010.01) Determines mono-phase signal of logical zero with trapezoid acceleration/deceleration (output 010.00)
Determines mono-phase signal "1" with no acceleration/deceleration (output 010.01) Designates interrupt input 0 in counter mode (input 000.03) Designates interrupt input 1 in counter mode (input 000.04) Designates interrupt input 2 in counter mode (input 000.05) Designates interrupt input 3 in counter mode (input 000.06)
NOTE: * refers to CPM2A/CPM2C PLC controller models.
Function Reads the current state of high-speed counter, of interrupt input in counter mode or input frequency of synchronized pulse control Reads the status of high-speed counter or pulse output Reads the results of comparing with values from comparison table Reads the current value of pulse output
C=000 Function reads the current value of PV of the specified high-speed counter or the interrupt input in counter mode.
Fast counter PV or input frequency (P=000) When the output is used as the high-speed counter, instruction reads the current value of the specified fast counter and writes an 8-digit BCD value to D and D+1. If differential-phase mode or up/down input mode is used, PV can have value between F838 8608 and 0838 8607, where F as the first digit is treated as a minus sign. PV can have value between 000 0000 and 1677 7215 in incremental mode. When the input is used as synchronic pulse input, the instruction reads the input frequency and writes an 8-digit BCD value to D and D+1. Range of the input frequency is 0000 0000 - 0002 0000. Interrupt counter input PV ( P=100, P=101, P=102, P=103) Function changes the contents of PV to 4-digit hexadecimal number from the word D (from 0000 to FFFF). C=001 Function reads the status of the high-speed counter or the pulse input and stores the data into D.
Status of the high-speed counter or the pulse input 0 (P=000) The table below shows the function of bits in the word D when P=000. Bits not mentioned are not used and are always zero.
Bit 00 01
Function Status of comparing high-speed counter with values from comparison table (0: not
compared, 1:compared)
High-speed counter below/above the specified value (0: in range, 1:out of range) Total number of pulses defined for pulse output 0 (0: number of pulses not defined,
1:number of pulses defined)
Pulse output
05 06 07 08 09
Defined number of pulses on output 0 executed (0: not executed, 1:executed) Pulse output 0 state
range, 1:out of range) (0: stopped, 1:executing) (0: in
(0: constant,
Status of the pulse output 1 (P=010) The table below shows the function of bits in the word D when P=010. Bits not mentioned are not used and are always zero.
Bit 05 06 07 08 09
Defined number of pulses on output 1 executed (0: not executed, Pulse output 1 state
(0: stopped, 1:executing) (0: in range, 1:out of range)
C=002 Function reads the result of comparing the current value PV with 8 areas defined by instruction CTBL and stores data into D. Bits 0 to 7 contain the results of comparing with 8 ranges from the comparison table (0: not in range, 1: in range). C=003 Function reads the value of current state of PV pulse output and stores it to 8-digit BCD value in words D and D+1. PV can have value from -16.777.215 to +16.777.215. Bit no.15 of the word D+1 behaves like a sign: 0 stands for positive, 1 stands for negative number.
Ladder symbol
Limitations
If CPM1 or CPM1A PLC controller is used, parameter D has to be 000 and parameter C has to be 000, 001 or 002. If an address from DM memory area is used as parameter D, reading and writing to that location has to be enabled. D and D+1 have to belong to the same memory area. ER flag changes state to ON if an error concerning the value of instruction operand occurred.
Flag
Description
Instruction forms the comparison table for working with high-speed counter. Depending on parameter C, comparison can be immediate or it can be called upon with instruction INI.
Function Registers comparison table containing values and starts comparing Registers comparison table containing ranges and starts comparing Registers comparison table containing values. Comparing starts with INI instruction Registers comparison table containing ranges. Comparing starts with INI instruction
When the current value of PV matches some of the specified table values or it belongs to one of the specified ranges, the appropriate subroutine is called. If the high-speed counter is not enabled in PC area (DM6642) instruction CTBL cannot be executed. Comparing with values Comparison table can have up to 16 values. Each of these values is assigned a number of subroutine that is called when the current value matches the table value. With CPM1 and CPM1A models, comparison is done one at a time in each cycle, while with models CPM2A and CPM2C comparison is done for all table values simultaneously. After comparing with the last table value, comparison starts from the first value again. The table below shows the structure of the comparison table containing values. Each value is assigned three words in the table. If the value FFFF is used as the number of subroutine, no subroutine will be executed in case of a match.
Number of values that current value is compared with (0001 to 0016, BCD) Value no.1 (lower four digits in BCD format) Value no.1 (higher four digits in BCD format) Number of subroutine for matching the first value
Comparing with a range of values Comparison table with ranges contains 8 ranges, which the current value PV is compared with. Ranges can overlap, allowing that the current value PV falls into several of these; in this case, the subroutine of the first matching area is called. If the value FFFF is used as the number of subroutine, no subroutine will be executed in case of a match.
TB
TB+1 TB+2 TB+3 TB+4 ... TB+35 TB+36 TB+37 TB+38 TB+39 Ladder symbol
Lower value no.1 (higher four digits in BCD format) Higher value no.1 (lower four digits in BCD format) Higher value no.1 (higher four digits in BCD format) Number of subroutine in case that the current value PV is within range no.1 Lower value no.8 (lower four digits in BCD format) Lower value no.8 (higher four digits in BCD format) Higher value no.8 (lower four digits in BCD format) Higher value no.8 (higher four digits in BCD format) Number of subroutine in case that the current value PV is within range no.8
Limitations
In each area lower border has to be lower than the upper border. Number of subroutine can be used for several ranges. Table has to belong to a single memory area. Parameter D has to be 000 and the parameter C has to be 000, 001, 002 or 003. ER flag changes state to ON if an error concerning the value of instruction operand occurred.
Flag
In case of multiple errors, only one code will be displayed. To display the other codes,
it is necessary to reset bits 00-07 of the word SR253 via instruction FAL with parameter N=00. Upon each reset, new error code will be displayed (if there is more than one error). Error code remains in PLC controller memory after the power is off. When error occurs, besides the code, programmer will be notified with blinking diode on the casing of PLC controller. Instruction FAL with parameter N=0 may be used for resetting the message created with the instruction MSG. Ladder symbol
PLC controller continues the program execution only when cause of error is removed. Error code remains written and may be read. Ladder symbol