

leikang
Staff group-
Content Count
189 -
Joined
-
Last visited
Content Type
Profiles
Forums
PLC programming technology and HMI interface design Simplified Chinese database
- PLC AND HMI SIMPLIFIED CHINESE ARTICLES
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Comments
- PLC AND HMI SIMPLIFIED CHINESE ARTICLE Reviews
PLC and HMI Brand Database
- PLC AND HMI BRANDS INTRODUCTIONS
- PLC AND HMI BRAND INTRODUCTION Comments
- PLC AND HMI BRAND INTRODUCTION Reviews
PLC programming technology and HMI interface design English database
- PLC AND HMI ENGLISH ARTICLES
- PLC AND HMI ENGLISH ARTICLE Comments
- PLC AND HMI ENGLISH ARTICLE Reviews
PLC programming technology and HMI interface design Russian database
- PLC AND HMI RUSSIAN ARTICLES
- PLC AND HMI RUSSIAN ARTICLE Comments
- PLC AND HMI RUSSIAN ARTICLE Reviews
Spanish database on PLC programming techniques and HMI interface design
- PLC AND HMI SPANISH ARTICLES
- PLC AND HMI SPANISH ARTICLE Comments
- PLC AND HMI SPANISH ARTICLE Reviews
German database on PLC programming technology and HMI interface design
- PLC AND HMI ARTICLES IN GERMAN
- PLC AND HMI ARTICLE IN GERMAN Comments
- PLC AND HMI ARTICLE IN GERMAN Reviews
Downloads
Store
Gallery
Blogs
Calendar
Videos
Everything posted by leikang
-
Two Hand Control Logic using PLC
leikang posted A plc and hmi english article in PLC programming learning
This article is about the programming of two-hand control used in the press industry. The purpose of this program is about safety to prevent fatal accidents. Below is an image of how the press machine looks and why we care about safety. As you can see there are pushbuttons used to control the press machine. The center plate is pushed against the surface of the workpiece when we press the push buttons. The two pushbuttons must be pressed at the same time to operate the press machine as shown in the below animation. When the operator uses his one hand to press the button and use his second hand when plate pushing against the surface, he can injure himself. The powerful force of pushing a plate can easily squeeze hands if the operator tries to maneuver things in a hurry. Below I have explained the program used to prevent such incidents with the help of Siemens TIA Portal. Here in the below figure press machine which has two inputs and one output is shown. Inputs are connected to the plc digital input (DI) module and single output which is connected to the digital output (DO) module. Below is a list of inputs and outputs used for the program. Inputs: Push Button (PB_1): I0.0 Push Button (PB_2): I0.2 Outputs: Press Machine Output: Q0.0 Two-Hand Control Logic Logic Description Network 1: Here two push-buttons PB_1 & PB_2 are connected in series. When both push-buttons are pressed at the same time, then the signal will pass through NC contact of timer T0 and energize the output. Network 2: Now if any single push button either PB_1 or PB_2 is pressed then timer T0 on-delay timer (S_ODT) is energized, here in our case after 5 seconds. Here NC contact of press machine’s output is also used after push button because if the output is ON then it won’t allow the timer to energize. So, the machine’s output will only energize when both buttons are pressed together. -
Traffic Light Control using PLC Ladder Logic
leikang posted A plc and hmi english article in PLC programming learning
We most often come across a three-way traffic jam in our city. This PLC program gives the solution to control heavy traffic jams using programmable logic control. Traffic Light Control using PLC Problem Solution They are so many ways to write a program for traffic light control ex: sequencer output method but in this normal input, outputs and timers are used. Timers are used to give time delay for output to turn ON and OFF. Reset coil is used at the end to run the program continuously. Comparator blocks are used to reduce the number of timers used. Program done in AB RSLogix 500 Software. List of Inputs and Outputs for Traffic Control System PLC Program for 3-way Traffic control System Below tabular column gives the Steps or sequence of outputs to turn ON. PLC Logic Description for 3-way Traffic Control System RUNG000 : This is a Latching rung to operate the system through Master Start and Stop PB. RUNG001 and RUNG0002 : Starting the timer to turn ON first output West Green so east and west should be in red. Comparators in Parallel rung are used to turn OFF East red after 15 sec. Timer T4:2 timing bit in parallel contact used to turn ON East red again in 5th and 6Th Step. (Refer Above Tabular column for clarification) RUNG 0003 : Turning ON North Red up to 3rd step using T4:0 and T4:1’s timer timing bit and comparator blocks. Rung 0004 : Turn ON East yellow for 5 sec using comparator blocks. (Step 2nd) Rung 0005-0006-0007-0008-0009-0010 : The same procedures followed to turn ON further outputs. ( Refer Tabular column for a sequence of operation) RUNG 0011 : Reset coil is turned ON using T4:2 ‘s done bit to restart the cycle from beginning The program runs continuously until STOP PB is pressed Conclusion: The above-explained 3 ways traffic light control using PLC is for example only. It may vary from real-time. We can use this example program to understand the working of timers and comparator block function in AB PLC. -
When you design a PLC logic, you have to take care of the names that you provide to tags. It should be easily understood and interpreted by any programmer. It should neither be too long nor too short. The naming convention is important because improper tagging can cause troubleshooting issues for programmers. Also, giving lengthy names will consume the memory of PLC. So, every programmer has to follow proper naming conventions before writing a PLC program. In this post, we will see the concept of PLC tag naming conventions. PLC Tag Naming Conventions First of all, let us understand how tag naming convention plays a great role in PLC programming. You have a motor with its run command and run feedback as PLC IO’s. The motor is located in the blower room and it is used as an air compressor. The motor tag name in the P&ID is M-101. Now, for a PLC programmer, identifying a tag location is important. So, there are two types of mindsets that normally define a PLC programmer. The first will try to give as much information as possible in a tag name; so he can name the motor run command as M101_Compressor_Run_Command. The second one will try to give the name as Q_M101_Comp. The second mindset looks very clear, as he is giving short names and keeping the length as minimal as possible. This is the reason why naming a PLC tag is important, as it relieves the programmer from reading such lengthy tags in situations where urgent troubleshooting has arrived. (It is to be noted that PLC tag naming does not accept any special character apart from underscore (_) ). A PLC tag name should contain information that can help the programmer relate to the meaning of it. This generally implies the following information – data type (eg. boolean, integer), data flow (eg. input, output), scope (eg. local, global), instrument or device type (eg. motor, valve, sensor), process parameter (eg. pressure, flow, temperature) and location of the device. Tag Name Styles There are various styles according to IEC standards that must be followed for proper naming. Let us have a look at some of the most generally used: Camel Style, Pascal Style, Snake Style, Prefix with Data Type Style Camel Style In this style, there is no underscore in between. A full name is given to the whole word, but each word in it starts with a capital letter. For example, take the above-discussed example. M101_Compressor_Run_Command will be written as m101CompressorRunCommand. You can identify each word by a capital letter. The first letter will be a compulsory small letter. This style looks good if the word is small. It prevents the use of underscore and this makes memory consumption smaller. Pascal Style It is similar to the camel style; the only difference is that the first letter will be a compulsory capital letter. For example, our tag will be written as M101CompressorRunCommand. Snake Style The example that we discussed before is the snake style. Here, each word will be separated by an underscore. Prefix with Data Type Style Here, the tag will be prefixed by the data type of the tag name. In our case, the tag type was boolean. According to IEC standards, a boolean tag is usually given a prefix of ‘x’. So, our style will be written as xM101CompressorRunCommand. This helps the programmer to identify what type of data is used for that particular tag. Tips For Tag Naming in PLC Programming The first and foremost rule is that the length of a tag should be short, but not so short that no one can understand it. As discussed, the length should contain appropriate information in a proper length. Lengthy names should be strictly avoided. Follow the general tag naming styles that were discussed. These are according to IEC standards and make the logic look neat and clean. To reduce bugs during tag creation, use Excel files. Excel reduces workload in a very vast way as duplication and copying becomes very easy. Errors are hardly produced in Excel files. It is not always necessary to use a full name for a word. For example, the valve can be written as vlv and temperature can be written as temp. Avoid making the tag fully capitals. It looks cumbersome and inappropriate to read.
-
PLC Memory Mapping and I/O addressing
leikang posted A plc and hmi english article in PLC programming learning
A wise PLC programmer once told me that the first thing any aspiring programmer should learn about the PLC they intend to program is how the digital memory of that PLC is organized. This is sage advice for any programmer, especially on systems where memory is limited, and/or where I/O has a fixed association with certain locations in the system’s memory. Virtually every microprocessor-based control system comes with a published memory map showing the organization of its limited memory: how much is available for certain functions, which addresses are linked to which I/O points, how different locations in memory are to be referenced by the programmer. Discrete input and output channels on a PLC correspond to individual bits in the PLC’s memory array. Similarly, analog input and output channels on a PLC correspond to multi-bit words (contiguous blocks of bits) in the PLC’s memory. The association between I/O points and memory locations is by no means standardized between different PLC manufacturers, or even between different PLC models designed by the same manufacturer. This makes it difficult to write a general tutorial on PLC addressing, and so my ultimate advice is to consult the engineering references for the PLC system you intend to program. The most common brand of PLC in use is Allen-Bradley (Rockwell), which happens to use a unique form of I/O addressing (Note 1), students tend to find confusing. For these two reasons (popularity and confusion), I will focus on Allen-Bradley addressing conventions for the bulk of this section. Note 1 : The most modern Allen-Bradley PLCs have all but done away with fixed-location I/O addressing, opting instead for tag name based I/O addressing. However, enough legacy Allen-Bradley PLC systems still exist in industry to warrant coverage of these addressing conventions. PLC Memory Map The following table shows a partial memory map for an Allen-Bradley SLC 500 PLC Memory Map also called the data table, this map shows the addressing of memory areas reserved for programs entered by the user. Other areas of memory exist within the SLC 500 processor, but these other areas are inaccessible to the technician writing PLC programs. Note that Allen-Bradley’s use of the word “file” differs from personal computer parlance. In the SLC 500 controller, a “file” is a block of random-access memory used to store a particular type of data. By contrast, a “file” in a personal computer is a contiguous collection of data bits with collective meaning (e.g. a word processing file or a spreadsheet file), usually stored on the computer’s hard disk drive. Within each of the Allen-Bradley PLC’s “files” are multiple “elements,” each element consisting of a set of bits (8, 16, 24, or 32) representing data. Elements are addressed by number following the colon after the file designator, and individual bits within each element addressed by a number following a slash mark. For example, the first bit (bit 0) of the second element in file 3 (Binary) would be addressed as B3:2/0. In Allen-Bradley PLCs such as the SLC 500 and PLC-5 models, files 0, 1, and 2 are exclusively reserved for discrete outputs, discrete inputs, and status bits, respectively. Thus, the letter designators O, I, and S (file types) are redundant to the numbers 0, 1, and 2 (file numbers). Other file types such as B (binary), T (timers), C (counters), and others have their own default file numbers (3, 4, and 5, respectively), but may also be used in some of the user-defined file numbers (10 and above). For example, file 7 in an Allen-Bradley controller is reserved for data of the “integer” type (N), but integer data may also be stored in any file numbered 10 or greater at the user’s discretion. Thus, file numbers and file type letters for data types other than output (O), input (I), and status (S) always appear together. You would not typically see an integer word addressed as N:30 (integer word 30 in the PLC’s memory) for example, but rather as N7:30 (integer word 30 in file 7 of the PLC’s memory) to distinguish it from other integer word 30’s that may exist in other files of the PLC’s memory. This file-based addressing notation bears further explanation. When an address appears in a PLC program, special characters are used to separate (or “delimit”) different fields from each other. The general scheme for Allen-Bradley SLC 500 PLCs is shown here: Not all file types need to distinguish individual words and bits. Integer files (N), for example, consist of one 16-bit word for each element. For instance, N7:5 would be the 16-bit integer word number five held in file seven. A discrete input file type (I), though, needs to be addressed as individual bits because each separate I/O point refers to a single bit. Thus, I:3/7 would be bit number seven residing in input element three. The “slash” symbol is necessary when addressing discrete I/O bits because we do not wish to refer to all sixteen bits in a word when we just mean a single input or output point on the PLC. Integer numbers, by contrast, are collections of 16 bits each in the SLC 500 memory map, and so are usually addressed as entire words rather than bit-by-bit . Certain file types such as timers are more complex. Each timer “element ” consists of two different 16-bit words (one for the timer’s accumulated value, the other for the timer’s target value) in addition to no less than three bits declaring the status of the timer (an “Enabled” bit, a “Timing” bit, and a “Done” bit). Thus, we must make use of both the decimal-point and slash separator symbols when referring to data within a timer. Suppose we declared a timer in our PLC program with the address T4:2, which would be timer number two contained in timer file four. If we wished to address that timer’s current value, we would do so as T4:2.ACC (the “Accumulator” word of timer number two in file four). The “Done” bit of that same timer would be addressed as T4:2/DN (the “Done” bit of timer number two in file four) A hallmark of the SLC 500’s addressing scheme common to many legacy PLC systems is that the address labels for input and output bits explicitly reference the physical locations of the I/O channels. For instance, if an 8-channel discrete input card were plugged into slot 4 of an Allen Bradley SLC 500 PLC, and you wished to specify the second bit (bit 1 out of a 0 to 7 range), you would address it with the following label: I:4/1. Addressing the seventh bit (bit number 6) on a discrete output card plugged into slot 3 would require the label O:3/6. In either case, the numerical structure of that label tells you exactly where the real-world input signal connects to the PLC. PLC Memory Mapping Example To illustrate the relationship between physical I/O and bits in the PLC’s memory, consider this example of an Allen-Bradley SLC 500 PLC, showing one of its discrete input channels energized (the switch being used as a “Start” switch for an electric motor): If an input or output card possesses more than 16 bits – as in the case of the 32-bit discrete output card shown in slot 3 of the example SLC 500 rack – the addressing scheme further subdivides each element into words and bits (each “word” being 16 bits in length). Thus, the address for bit number 27 of a 32-bit input module plugged into slot 3 would be I:3.1/11 (since bit 27 is equivalent to bit 11 of word 1 – word 0 addressing bits 0 through 15 and word 1 addressing bits 16 through 31): A close-up photograph of a 32-bit DC input card for an Allen-Bradley SLC 500 PLC system shows this multi-word addressing: The first sixteen input points on this card (the left-hand LED group numbered 0 through 15) are addressed I:X.0/0 through I:X.0/15, with “X” referring to the slot number the card is plugged into. The next sixteen input points (the right-hand LED group numbered 16 through 31) are addressed I:X.1/0 through I:X.1/15. Legacy PLC systems typically reference each one of the I/O channels by labels such as “I:1/3” (or equivalent ) indicating the actual location of the input channel terminal on the PLC unit. The IEC 61131-3 programming standard refers to this channel-based addressing of I/O data points as direct addressing. A synonym for direct addressing is absolute addressing. Addressing I/O bits directly by their card, slot, and/or terminal labels may seem simple and elegant, but it becomes very cumbersome for large PLC systems and complex programs. Every time a technician or programmer views the program, they must “translate” each of these I/O labels to some real-world device (e.g. “Input I:1/3 is actually the Start push-button for the middle tank mixer motor”) in order to understand the function of that bit. A later effort to enhance the clarity of PLC programming was the concept of addressing variables in a PLC’s memory by arbitrary names rather than fixed codes. The IEC 61131-3 programming standard refers to this as symbolic addressing in contrast to “direct” (channel-based) addressing, allowing programmers arbitrarily name I/O channels in ways that are meaningful to the system as a whole. To use our simple motor “Start” switch example, it is now possible for the programmer to designate input I:1/3 (an example of a direct address) as “Motor start switch” (an example of a symbolic address) within the program, thus greatly enhancing the readability of the PLC program. Initial implementations of this concept maintained direct addresses for I/O data points, with symbolic names appearing as supplements to the absolute addresses. The modern trend in PLC addressing is to avoid the use of direct addresses such as I:1/3 altogether, so they do not appear anywhere in the programming code. The Allen-Bradley “Logix” series of programmable logic controllers is the most prominent example of this new convention at the time of this writing. Each I/O point, regardless of type or physical location, is assigned a tag name which is meaningful in a real-world sense, and these tag names (or symbols as they are alternatively called) are referenced to absolute I/O channel locations by a database file. An important requirement of tag names is that they contain no space characters between words (e.g. instead of “Motor start switch”, a tag name should use hyphens or underscore marks as spacing characters: “Motor start switch”), since spaces are generally assumed by computer programming languages to be delimiters (separators between different variables). Having introduced Allen-Bradley’s addressing notation for SLC 500 model PLCs, I will now abandon it in favor of the modern convention of symbolic addressing throughout the rest of the articles, so as to avoid making the programming examples brand- or model-specific. Each data point within my PLC programs will bear its own tag name rather than a direct (channel-based) address label. -
PLC Digital Signals Wiring Techniques
leikang posted A plc and hmi english article in PLC programming learning
Ina process plant, on/off control is done through the PLC or DCS. The below Figure is an overview of one discrete/digital (on/off) circuit, showing the entire process from the power supply through the sensor and on to the PLC. PLC Digital Signals Wiring Techniques In Above Figure, a level switch is mounted to a vessel. The switch is monitored by a PLC digital input module. The circuit is powered through a circuit breaker (CB2) in an instrument power panel. The main power feed is brought to a marshalling panel, where the power is split, feeding multiple fused circuits. Fuse 03FU is the main disconnect fuse, while the remaining fuses are distribution fuses. Fuse 06FU feeds our circuit. Hot (electrically live) wire 06A is passed to the field junction box (FJB) as one wire in a multi-conductor cable. This cable, sometimes called a homerun or main cable, is broken out at the field junction box (FJB), where, in this example, two unshielded twisted pair cables are fed to the end device, LSH-47. This leaves one spare conductor. The hot wire 06A hits the + terminal of the form- A contact and jumpers to the H terminal to power up the electronics of the level switch. The wire number changes across the relay contact to 06B. This wire feeds the signal back to the FJB, where the signal is passed back to the termination cabinet via the multi-conductor homerun cable. There the signal and neutral are paired and passed to the PLC module. Note that the return neutral wire, labeled 02N (since it is the return wire for CB2), is split to the PLC and the level switch. NOTE: It is always advisable to use twisted-pair wire when connecting to a PLC system. Twisted-pair cables exhibit excellent noise immunity, which is particularly useful when connecting to high-impedance loads, such as those found on PLC/DCS I/O modules. A high-impedance load can be particularly sensitive to noise since the attendant current is so low, and the amount of actual work being done is minimal. That is it, in a nutshell. The following is a commentary on connectivity issues related to PLC/DCS signal wiring. a. Sinking and Sourcing The terms sinking and sourcing are used to describe the way a particular component in the circuit relates to power flow. These terms actually stem from the days of transistor logic. A transistor can be thought of as a simple switch for this discussion (Below Figure). DC (+) is DC Positive Terminal, DCC is DC common This type of transistor requires a small resistance on its collector (the upper side) for current limiting. In the Case 1 example, the resistor is in place, with the load shown in series with the transistor’s emitter. When the transistor conducts, current flows through the resistor, the transistor, and then through the load. This circuit was not used very much because the current divides across the internal circuitry, leaving less power available to drive the load and driving temperatures up in the I/O module. Case 2 This provides a more typical sourcing circuit, where the PLC output, by turning off, switches the full-load current to drive the load. When the output turns on, the transistor conducts, causing most of the current to be shunted through it, starving the load, and thereby de-energizing it. The downside of this configuration is that a small leakage current will continue to be present across the load, as a certain amount of current will continue to be directed across the load, though not enough, typically, to cause the load to stay energized. When troubleshooting, however, a small voltage will be detected across a de-energized load. In the Case 3 example, the load is the collector resistor. When the transistor conducts, the load energizes. From the standpoint of the board electronics, this is a better configuration because most of the heat is dissipated by the load. The downside of this configuration is that “switching the neutral” is counter-intuitive and can be unsafe, as full voltage is present at both the positive and negative terminals of the load when it is de-energized. For these reasons, Case 2 has evolved to become the most common output configuration. This sinking /sourcing concept can be extended to any circuit. b. Circuit Protection (Fusing) Most I/O modules are internally fused. However, that does not mean all that much to the user. While the internal fuse does limit damage to the module itself, in most cases the module still must be sent to the factory to be repaired. So the end result is the same to the user—a broken module. As a result, it is good practice to add external fuses to each I/O point, with a rating just below the fuse rating on the module circuit board. While this limits the size of the load that can be driven directly by the module, the internal fuse and module are protected. Caution: If internally fused discrete outputs are embedded in interlock chains, or if they are in circuits that depend on normally closed contacts to initiate safety actions, then another type of module that is unfused should be used. Or interposing relays could be deployed. It is possible to have the I/O point function normally (e.g., close its contacts, and report to the program that it has closed them) but still not pass power due to a blown internal fuse. c. Digital Input (DI) Circuits Digital input (DI) modules continually scan their input points for the presence or absence of voltage. If voltage is present, a 1 is written to a memory location. If voltage is absent, a 0 is written there. The required voltage type and magnitude are two of the factors that distinguish one DI module from another. Most DI points have high impedance, thus minimizing the amount of current absorbed, and so have a relatively minor effect on the power distribution system. Each digital input point can be thought of as a lamp, one that is either on or off. DI modules can be electrically isolated point to point, or they can be grouped by internally bussing the I/O common. Most modules today are grouped, as grouping allows for higher density. As we have seen, point densities of up to 32 points per module are common in the grouped configuration. The below Figure shows two different DI modules. The first module internally busses the DC(+) side of the circuit. The I/O point then passes power to the field device. This type of module is called a sourcing module. This configuration is unusual. Switching the common side in the field is typically not done. If the module internally busses the DC common side of the circuit, then the module is considered a sinking module. The I/O point completes the path to DC common. This configuration is used in the vast majority of cases because it allows each I/O point to be individually fused near the power supply before power is distributed to the field device. In either case, the current flows in the same direction through the field-mounted switch. d. Digital Output (DO) Circuits Relay contacts are considered output devices because they force other devices to react when they change state. PLC digital outputs can be thought of as relay contacts. In many cases, that is just what they are. In others, the switching element may be a solid-state device of some sort. Even in that case, the relay analogy works as long as the designer remembers to consider leakage current. DO modules switch voltage on and off to cause an external device to change state. These modules are either “isolated” or “non-isolated.” If a module is non-isolated, then it is either sinking or sourcing. 1. Isolated DO Circuits An isolated DO circuit is one in which the power source can be isolated between I/O points. The source is not internally bussed. The cost is two terminals per point, so it is expensive. There are three sources of wetted power, with points 1, 2, 4, 5, and 6 being isolated from point 3 and points 7 and 8. In this example, AC is being fed to Point 3, while DC signals are on the remaining points. Doing this demonstrates the possibilities. In practice, it is a good idea to separate AC and DC signals if at all possible. 2. Non-isolated DO Circuits As with the DI PLC module, point density is an important feature of DO modules. As can be seen in the isolated module in Figure, isolation comes with a price. A 16-terminal module has a point density of only eight since two terminals are needed per point. By internally bussing a common, the point density can be improved dramatically. However, the result is a non-isolated module that places limits on the designer. Power sources must be managed. In most cases this is not a problem since extending PLC I/O power to the field device is feasible. However, if a field device must source its own signal, then an interposing relay must be added to the circuit to provide isolation. The above Figure shows two different digital output modules. The first internally busses the DC(+) side of the circuit. The I/O point then provides a path to power, making it a sourcing module. If the module busses the DC common side of the circuit, as shown in Above Figure, Example 1, then the module is considered a sinking module. The I/O point completes the path to common. This type of module is rarely used today due to the common-side switching. Example 2 is far more common, as it puts the switching action ahead of the load in terms of current flow. -
PLC Analog Signals Wiring Techniques
leikang posted A plc and hmi english article in PLC programming learning
Unlike the discrete/digital (on/off) circuit, analog signals vary across a range of voltage or current. Taking the same vessel described previously in Digital wiring example, how would the wiring change if we replaced the switch with a level transmitter? PLC Analog Signals Wiring Techniques The below Figure has the same circuit-breaker panel, but now it is feeding a DC power supply. The power supply could be in its own cabinet, or it could be in the marshalling panel. In any case, DC power is distributed in the marshalling panel. A single fuse could power several circuits, or each circuit could be fused. The transmitter is fed +24 VDC at its positive terminal. The 4–20 mA current signal is sourced from the (-) terminal of the transmitter to the PLC. Cabling is twisted pair and shielded. The signal cable is numbered with the transmitter number, and the wires inside are numbered to provide power source information. The shield is terminated in the marshalling panel, where all shields are gathered and terminated to a ground lug that is isolated from the cabinet. Note: Care should be used to ensure that the shield is only grounded at one spot. Shields that are grounded in more than one spot may inject large noise spikes onto the signal. This condition is called a ground loop and can be a very difficult problem to isolate, as the problem is intermittent. A “quiet” ground should be used to ground all the shields at one point. A quiet ground is one that is either tied to a dedicated ground triad, or one that is tied to the center-tap of an isolation transformer. Noisy ground would be one that is physically located far from the transformer, and one that services motors, lights, or other noisy items. That is the basic two-wire analog input circuit. The following is some specific information regarding the various analog possibilities: a. Circuit Protection (Fusing) Analog circuits are always low voltage, usually 24 VDC. As a result, fusing individual analog circuits is not required for personnel safety. Also, most analog I/O modules have current-limiting circuits onboard. So fusing is generally not required to protect the modules. If these two conditions are true—and the designer should confirm this with the manufacturer— then per-point fusing can be avoided if desired. If a designer wishes to save money by not fusing every point, then grouping the circuits into damage control zones should be considered. For example, if there is a pump pair, a primary and a backup, instruments for the two should be in separate fuse groups to prevent a single blown fuse from taking them both out. For more information, see I/O Partitioning in the index. b. Noise Immunity Analog circuits are susceptible to electronic noise. If, for example, an analog cable lies adjacent to a motor’s high-voltage cable, then the analog signal cable will act as an antenna, picking up the magnetically coupled noise generated by the motor. Other sources of noise exist, such as radio frequency (RF) radiation from a walkie-talkie. Noise on an analog signal cable can cause errors in reading the value of the signal, which in turn can cause a multitude of problems in the control system. Some ways to mitigate noise include: • Twisted-Pair Cables: Electronic noise may be greatly reduced by the use of twisted-pair cabling. Most instruments use two wires to transmit their signals. Current flows out to the device in one wire and back from the device in the other. If these wires are twisted, then the noise induced will be very nearly the same in each wire. The magnitude of induced current flow is identical in each conductor, but it travels in opposite directions, thus canceling out most of the noise. • Shielding: A further refinement in noise rejection is shielding, i.e., the use of a grounded braid or foil shield around the conductors. As previously mentioned, the shield should never be grounded in more than one place to avoid ground loops. Most instrument manufacturers recommend grounding the shield at the field instrument. However, a better place to do it is in the marshalling panel. It is easier to verify and manage the grounds if they are in one place. Also, it is possible to ensure a good ground at that point. • Conduit: A final refinement in noise rejection is grounded metallic conduit. This is rarely required, except for data communications cables and for particularly critical circuits. c. Resistance Temperature Detector (RTD) An RTD is made of a special piece of wire whose electrical resistance changes in a predictable way when the wire is exposed to varying temperatures. The material of choice today is 100 ohm platinum, though other types, such as 10 ohm copper, are sometimes used. For the platinum RTD, the rating is for 100 ohms at 0ºC. Resistance changes with temperature are very small, causing voltage variations in the millivolt range. RTDs are connected to a Wheatstone bridge circuit that is tuned to the RTD. But this tuning occurs on the bench. What about the field environment? We have already discussed the line attenuation difficulties inherent in millivolt signals (Chapter 4). This problem is overcome in the RTD circuit by the use of one or two sense inputs. These inputs help negate the effects of copper losses due to long lines and temperature variations along them and are additional wires that must be included in the RTD cable, hence the terms three-wire and four-wire RTDs. d. Thermocouple As we have discussed, a thermocouple exploits the electromotive force (EMF) that arises from changes in temperature affecting two dissimilar metals that have been laminated together. This EMF manifests itself as a millivolt (DC) signal. When certain combinations of these dissimilar metals are joined, a predictable curve of temperature to voltage results as temperature at the junction changes. The signal is measured at the open end of the two wires, and a millivolt-per-degree scale is used to convert the voltage to engineering units. Thermocouple is thus a two-wire device. It is susceptible to radiated and induced noise and so is usually housed in a shielded cable if extended for a very long distance. The thermocouple signal is also susceptible to degradation due to line loss, so minimizing the cable length is desirable. Also, it is important to use the proper extension wire. A thermocouple usually comes with a short pigtail connection to which extension wire must be attached. If a different wire material, such as copper, is used to extend the signal to the PLC, a spurious “cold junction” is created that causes a reverse EMF that partially cancels out the signal. Therefore, the proper extension wire should be used, or a device called a cold-junction compensator or ice-point reference needs to be installed between the copper wiring and the thermocouple wiring. Thermocouple I/O modules already have the cold-junction compensation onboard, so using the proper thermocouple extension wire is required. Specific types of thermocouples exhibit different temperature characteristics. A type J thermocouple is formed by joining an iron wire with a constantan wire. This configuration provides a curve relatively linear between 0 and 750ºC.8 A type K thermocouple has a nickel-chromium wire mated to a nickel-aluminum wire, sometimes called chromel/alumel. The type K thermocouple spans a useful temperature range of -200 to 1250ºC. Other combinations yield different response curves. e. 0–10 Millivolt (mV) Analog Analog signals were first generated by voltage modulation. In the old days, a transmitter would generate a weak signal that had to be captured and then filtered and amplified so it could be used to move a pen on a recorder, or a needle on a gauge. The Achilles’ heel of the millivolt signal is its susceptibility to electrical noise. This signal-to-noise ratio problem increases as a function of cable length. So the transmitter needed to be in close proximity to the indicator or recorder. Millivolt signals today are, by and large, fed to transducers that convert the small signal to a current or to other media (like digital data values) less susceptible to noise and decibel (dB) loss before leaving the vicinity of the sensing element. However, some recorders and data acquisition systems still operate on the millivolt signal. f. 4–20 Milliamp (mA) Analog The drive to overcome the line attenuation shortcomings of the millivolt signal resulted in the development of the 4–20 mA current loop. As a result of its greatly increased performance, this method of transmitting analog signals quickly became the industry standard. Most field instruments on the market have a sensing element (sensor) and a transmitting element. The transmitter is tuned to the sensor, which may provide any type of signal from frequency-modulated analog to millivolts DC. Whatever the form of the signal, the transmitter interprets it and converts it to an output current between 4 and 20 mA and within that span is proportional in magnitude to the input. The process of tuning the output to the input is called scaling. Thus, the transmitter becomes what is referred to as a variable-current source. Just as a battery, as a voltage source, tries to maintain a constant voltage, regardless of the amount of load applied to it, the current source tries to maintain a constant current (for a given input signal), regardless of load. Since current is common at all points of a series circuit, the problem of cable length—as noted as a problem with the millivolt signal—is nullified. Of course, the ability of the device to force a constant current through a circuit can be overcome if enough load is applied. Therefore, the designer must know how much energy the current source is capable of producing. Generally, today’s instruments are able to maintain 20 mA at a circuit resistance of 1000 ohms. Since a typical instrument has no more than 250 ohms of input resistance, it is possible to power several instruments from a single current source without needing an isolator. For example, a single transmitter should be able to feed its signal to a PLC, a chart recorder, and a totalizer at a cost of 750 ohms, plus the line resistance. This should still be within the comfort zone of a typical transmitter. Note: There are still instruments with 600 ohm ratings on the market, so the designer should always check whenever a complex circuit is contemplated. To determine the energy available to the circuit, the designer must be able to identify the provider of that energy. That task is sometimes not as straightforward as it might appear, and the answer to the question will greatly impact the wiring of the circuit. There are two primary types of analog circuit, as described from the point of view of the transmitter. Transmitters with two wires are considered to be passive devices that sink current, while transmitters with four wires are active devices that source current. The below Figure depicts three temperature transmitters, each connected to different I/O points on the same PLC module. One transmitter is directly powered (i.e., four-wire), while the others are indirectly powered (i.e., two-wire). Each transmitter is connected to a control device—in this case, a PLC input. From the PLC’s perspective, all 4–20 mA current inputs are really voltage inputs. Resistors, either user-provided external ones, as shown here, or internal ones, are used to convert the current to a voltage. The computer points themselves are actually high-resistance voltmeters, which give them excellent isolation from the field devices and minimize additional loading on the input circuit. The I/O points on the PLC are shown with internal power available for each point, so the module is capable of being the voltage source for the loop. The following is a detailed commentary on the differences between two-wire and four-wire devices: 1. Four-Wire Circuit As seen below, a four-wire transmitter is one that provides the energy to power the loop and generate the current-modulated signal. Most level transmitters, for example, are four-wire devices. Four-wire devices always have power connections in addition to the signal connections. Yet not all such powered transmitters are four-wire. If a powered transmitter’s output is noted as passive, then the device may be treated as a two-wire unit from the standpoint of the signal circuit. Most recording devices are externally powered, but are passive on the circuit. In these cases, the external power is for the internal electronics of the unit only. The signal circuit is isolated from this power source. Note that the recorder shown on the bottom circuit is a powered, passive device. 2. Two-Wire Circuit A two-wire device is said to be loop powered. This means the device functions by absorbing the energy it needs to generate the signal from the current loop. This is also referred to as “current sinking.” This nomenclature can be a bit confusing because a transmitter that is current sinking is still the signal source for the circuit. Power for the current loop is supplied elsewhere. A transmitter classified as two-wire must typically be the first device in the circuit with respect to current flow. In other words, the positive terminal of the transmitter must be directly connected to the positive terminal of the voltage source. The voltage source is usually a 24 VDC power supply. (a) Two-Wire Circuits with Stand-Alone Power Supply Referring to above Figure, PLC I/O point 2 depicts a two-wire circuit with an external DC power supply. Notice the wires must be rolled (polarity-wise) at the PLC for the proper polarity to be present across the I/O point. That is because current flow is now reversed with respect to the previous example because the transmitter must become the first load in the loop as opposed to being the energy source for the loop. (b) Two-Wire Circuits with PLC Internal Power Supply Most PLC systems today are able to source the loop current themselves by simply connecting the positive terminal of the transmitter to a different terminal at the PLC. The negative terminal of the transmitter is then tied to the positive side of the I/O point, and the negative side of the I/O point is jumpered to the PLC system’s DC common. That is depicted in the I/O point 3 example. In that example, a recorder has been added to the loop. -
PLC Analog Input Conversion Formula
leikang posted A plc and hmi english article in PLC programming learning
For any unit conversion on any PLC, you can use four function math with the following for PLC Analog Input Conversion Formula, which assumes integer math, as follows : PLC Conversion Formula Formulas: EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset ProcessValue = EU / FACTOR DataOffset = Data in input register at 4 mA (or zero analog signal of whatever range – for example 0 VDC on a 0-10 VDC transmitter) DataSPan = Data at 20 mA – Data @ 4 mA FACTOR = arbitrary factor (multiple of 10) needed to get proper resolution and accuracy EU = Engineering Units x FACTOR EUOffset = Engineering Units @ 4 mA x FACTOR EUSpan = (Engineering Units @ 20 mA – Engineering Units @ 4 mA) x FACTOR DATA = Actual data reading in input register For Example, A Pressure transmitter of range 0 to 60 psig is connected to an PLC analog input card. The PLC Analog input card raw count starting from 6240 for 4mA and 31208 for 20mA. PLC reading 18975 raw counts and calculate equivalent pressure transmitter reading. Note: PLC raw counts may vary from system to system. 0-60 psig from 4-20 mA with resolution of 0.1 psig: FACTOR = 10 Data @ 4 mA = 6240 Data @ 20 mA = 31208 DataOffset = 6240 DataSpan = 31208 – 6240 = 24968 EUOffset = 0 x 10 = 0 EUSpan = (60 – 0) x 10 = 600 DATA = 18975 EU = ((EUSpan x (DATA – DataOffset))/DataSpan) + EUOffset EU = ((600 x (18975 – 6240)) / 24968) + 0 = 306 ProcessValue = EU / FACTOR Process Value = 306 / 10 = 30.6 psig -
Multiple Pumps Control using PLC
leikang posted A plc and hmi english article in PLC programming learning
Write the PLC program to control multiple pumps using programmable logic controllers. We have two input pumps used to fill a tank. Make sure pumps operate in an equal amount of time over their lifetime. Multiple Pumps Control using PLC Program Logic: Develop ladder logic program according to the logic given below, The start/stop push button is provided for control of the two input pump motors P1 and P2. The Start/Stop pushbutton station is operated to control pump P1. When the tank is full drain pump motor P3 is started automatically and runs until the low-level sensor is actuated. After 3 fillings of the tank by pump P1 control automatically shifts to pump P2. The operation of the start/stop pushbutton now controls pump P2. After 3 fillings of the tank by pump P2, the sequence is repeated. PLC Program: Program Description: Rung 0000: Start/Stop PB latched with memory B3:0/0. Rung 0001: B3:0/0 enabled to turn on B3:0/1 which is to turn ON PUMP P1 (O:0/0) when low-level sensor(I:0/3) turn ON and High-level sensor (I:0/2) is in off condition.B3:0/1 is latched with low-level sensor because pump p1 should not go off once water started rising. Rung 0002: Memory contacts used to turn on PUMP P1 (O: 0/0) with counter (C5:0). Since we are going to shift pump operation from P1 to P2, two counters are used to shift between Pl and P2. Counter C5:1 is used to turn on PUMP P2(O:0/2). Rung 0003 & 0004: B3:0/0 enabled to turn on B3:0/2 which is to turn on PUMP P3(O:0/1) when high-level sensor(I:0/2) turn ON and low-level sensor (I:0/3) is in off condition.B3:0/2 is latched with high-level sensor because pump p3 should not go off once water started reducing. Rung 0005: When Pump 3 (O: 0/1) is running, the low-level sensor turns on will make Pump p3 off and pump P1(O:0/0) ON. Rung 0006: Both Counter reset is done once the second counter (C5:1) done bit turns ON. Conclusion: We can use this example to understand the programming logic in AB PLC. -
How to Convert an Electrical Diagram into PLC Program?
leikang posted A plc and hmi english article in PLC programming learning
PLC programming took a history and reference from electrical drawings. As time passed and it became difficult to troubleshoot electrical systems involving automation, a need was required for some controller to execute a logic and do the needful. This gave birth to PLC systems. As you know, PLC programming has many types of languages and the original one is the ladder language. It should be known that electrical diagrams also help to convert it into ladder logic. In this post, we will see how to convert an electrical diagram into a PLC program. Understand Electrical Diagram First of all, you need to understand the electrical diagram. Refer to the below image. Every circuit has two ends – positive and negative. Current starts from the positive end and flows through the negative end. In between, electrical components and devices come. If you refer to the image below, there are four components – the start push button, the stop push button, the auxiliary contact of the lamp, and the lamp. The power supply starts from the positive end and goes to the input of the start push button (NO contact). The output of the start push button goes to the input of the stop push button (NC contact). The output of the stop push button goes to the input of the lamp. The output of the lamp is connected to the negative end supply. In parallel to the start push button, another wire goes down from the input of the button to an auxiliary contact of the lamp. The output of this contact is connected back to the output of the push button. When the power supply is given and if the start button is pressed, the lamp will turn on as it gets the path for current. Now, if the button is released, then the lamp will turn off as it does not get the path. So, to latch it, we therefore place the lamp contact in parallel which will hold the power supply path. When the stop button is pressed, the electrical supply path is cut off and the lamp goes off. Converting the wiring diagram to the PLC program Now, once you have understood the wiring diagram, start interpreting it in the same way for PLC programming. Refer to the below image. The ladder logic will have two power ends – left and right. Left is the equivalent to a positive power end and right is the equivalent to a negative power end. You will need four PLC programming components – start push button -> NO contact, stop push button -> NC contact, lamp -> output coil, and lamp NO contact. First, place the start push button NO contact. In parallel to it, place the lamp in NO contact. After this, place the stop push button NC contact. In the end, place the lamp in NO contact. The working will be the same as discussed for the wiring diagram. You saw that the same electrical drawing was interpreted and converted into ladder logic. The general tips to follow are: 1.Understand the wiring diagram from input power to the output power. In between, see which components are placed where and how they are wired. 2.In the wiring, identify the input parts and the output parts and mark them with separate colors. 3.Start programming by following the diagram and placing the components in the same way as wiring is done. 4.Run the program and see how it is working. -
Series Tanks Level Control using PLC Ladder Programming
leikang posted A plc and hmi english article in PLC programming learning
We need to control the level of tanks which are connected in series. Implement program for Series Tanks Level Control using PLC Ladder Programming. Series Tanks Level Control Two tanks are connected in series connection. We need to control of both tanks which are connected in series. Implement the PLC program for this application. Problem Diagram Problem Solution In chemical companies, there are lots of materials which are used for process and also stored in storage tanks for different processes. Here we consider two tanks, 1. Storage Tank and 2. Feeder Tank. Storage tank has more capacity than feeder tank. Storage tank is for material storage and feeder tank is for material supply for other process. Two level switches are used for level detection and one inlet valve for material feeding control. Consider one manual outlet valve and it can be operated as per requirement by the operator. For this application we can use PLC, we will write PLC program for this application. List of Inputs and Outputs Digital Inputs Cycle START :- I0.0 Cycle STOP :- I0.1 Low level storage tank (LL1) :- I0.3 Low level feeder tank (LL2) :- I0.4 High level storage tank (LH1) :- I0.5 High level feeder tank (LH2) :- I0.6 Digital Output Inlet valve :- Q0.0 M memory Cycle ON bit :- M0.0 Inlet valve close condition :- M0.1 PLC Ladder Diagram for Level control of Series Tanks Program Description For this application we used S7-300 PLC and TIA portal software for programming. We can implement this logic by using other PLC also. Network 1: Network 1 is for latching circuit. Whenever START button is pressed (I0.0), Cycle ON (M0.0) bit will be ON. Cycle can be STOP by pressing STOP PB (I0.1). Network 2: If low level of storage tank (I0.3) or low level of feeder tank (I0.4) is detected, inlet valve (Q0.0) will be ON. (Inlet valve close condition should not present). Network 3: High levels (I0.5 &I0.6) of both tanks are detected, inlet valve close condition will be activated and it will close the inlet valve (Q0.0). Here outlet valve is manual valve, it can be operated by operator as per requirement. Note :- Above application may be different from actual application. This example is only for explanation purpose only. We can implement this logic in other PLC also. Result -
Control LED PLC programming example
leikang posted A plc and hmi english article in PLC programming learning
Study the PLC programming example on LED control using the ladder logic diagram and learn the program description. This PLC example is for engineering students who are interested in learning and practicing the PLC exercises. The real-time industrial PLC programs will be provided with more safety features. PLC Programming LED Control Design a PLC ladder logic for the following application. We are using three toggle Switches to control three LED’s If Toggle Switch 1 and Toggle Switch 2 are ON, then LED 1 and LED 2 will be ON. If Toggle Switch 2 and Toggle Switch 3 are ON, then LED 2 will be OFF, and LED 3 will be ON. Digital Inputs The required inputs are listed below. Toggle Switch 1: I0.0 Toggle Switch 2: I0.1 Toggle Switch 2: I0.1 Here we call these toogle switches as simple “Switch” in our next discussions, But remember these are toggle-type switches. Digital Inputs The required outputs are listed below. LED 1: Q0.0 LED 2: Q0.1 LED 3: Q0.2 Ladder Diagram for LED Control PLC Program Description For this application, we used EcoStruxure Machine Expert Basic v1.2 software for programming. In the above program, we have used Normally Open Contacts for Switch 1 (I0.0), Switch 2(I0.1), and Switch 3 (I0.2). We have also used Normally Closed Contact for Switch 3 (I0.2). Switch 1 and Switch 2, present in Rung0 are connected in series for LED 1 and LED 2, thus implementing AND logic gate. With Switch 1 and Switch 2, Switch 3 is connected to LED 3 as Normally Closed Contact. For LED 3, Switch 2 and Switch 3 present in Rung1 are connected in series, thus implementing the AND logic gate. For LED 1 to be ON, Switch 1 and Switch 2 should be ON. When Switch 1 and Switch 2 are turned ON and Switch 3 is OFF, then LED 2 will be ON. When Switch 2 and Switch 3 are ON, LED 3 will be ON. Turning ON Switch 3 will turn OFF LED 2. When Switch 1 and Switch 2 are ON In Rung0, the signal through Switch 1 and Switch 2 when turned ON. As a result, LED 1 and LED 3 will turn ON. Switch 3 is used as a Normally Closed Contact for Switch 3 when in a false state, it will allow the signal to turn ON LED 2. When Switch 2 and Switch 3 are ON The signal through Switch 2 and Switch 3 in Rung1, that turns ON LED 3. In Rung0, switch 3 is taken as Normally Closed Contact, when in the true state, it will not allow signal to pass through it. As a result, LED 2 will turn OFF. Switch 3 is connected to LED 1 and therefore, it will remain ON. -
PLC Program for Temperature Control using Thermostat
leikang posted A plc and hmi english article in PLC programming learning
PLC Temperature Control: In a vessel there are Three Heaters which are used to control the temperature of the vessel. PLC Temperature Control Programming We are using Three Thermostats to measure the temperature at each heater. also another thermostat for safety shutoff in case of malfunction or emergency or to avoid over temperatures. All these heaters have different setpoints or different temperature ranges where heaters can be turned ON accordingly (below table shows the temperature ranges). A temperature control system consists of four thermostats. The system operates three heating units. The thermostats (TS1/TS2/TS3/TS4 are set at 55°C, 60°C, 65°C and 70°C. Below 55°C temperature, three heaters (H1,H2,H3) are to be in ON state Between 55°C – 60°C two heaters (H2,H3) are to be in ON state. Between 60°C – 65°C one heater (H3) is to be in ON state. Above 70°C all heaters are to be in OFF state, there is a safety shutoff (Relay CR1) in case any heater is operating by mistake. A master switch turns the system ON and OFF. PLC Solution There are four thermostats; assume them be in NC state when the set point is not reached. Let there be a control relay (CR1) to work as a safety shutoff. Master Switch : The Start switch is NO and Stop switch NC type. The below table shows the temperature ranges where Thermostats (TS1,TS2,TS3,TS4) status will be indicated as per the temperature value. Also the Heaters (H1,H2,H3) status in which either those Heaters will be ON or OFF as per the temperature value. PLC Ladder Logic Ladder Logic Operation First Rung: It has START button (default NO contact) and STOP button (default NC contact). A Relay CR1 is used to control the heaters depending on the thermostats status. A Thermostat TS4 is connected in between STOP & Relay, if TS4 activated (means TS4 contact changes from NC to NO) then all heaters will be OFF. An NO contact of Relay CR1 is used across the START button in order to latch or hold the START command. Second Rung: An NO contact of Relay CR1 is used to control the Heaters (H1,H2,H3) with the thermostats (TS1,TS2,TS3) status. After giving START command, This NO contact becomes NC contact. if temperature below 55 Deg C, TS1, TS2 & TS3 will be in Close Status so all heaters will be ON. if Temperature is in between 55 to 60 Deg C, Then TS1 will be Open, so Heater H1 will be OFF. then, if temperature in between 60 to 65 Deg C then TS2 also be Open, so Heater H2 will be OFF if temperature in between 65 to 70 Deg C then TS3 also be Open, so Heater H3 will be OFF There is a safety Shutoff which is used to avoid any malfunctions of Thermostats or to avoid over temperatures. if temperature reaches above 70 Deg C then TS4 will activates and de-energizes the Relay, thus all Heaters will be turned OFF. Note : Here Heaters H1, H2, H3 are either Relays or Contactors we energizing. so an NO contact of these relays are connected to Electrical Heater feeder circuits (MCC).These Electrical Feeder circuits will be controlled as per these signals and accordingly the heaters will be either ON or OFF. -
PLC Program for Artificial Fishpond Water Level Monitoring System
leikang posted A plc and hmi english article in PLC programming learning
PLC program for an artificial fishpond water level monitoring system explained with the ladder logic concept for beginners. Water Level Monitoring System Problem Description Implement a PLC program for an artificial fishpond water level monitoring system. Feed or drain the water of the artificial fishpond when the water level is below the normal level and activate the alarm when the water level is above or below the level. Problem Diagram Problem Solution This problem can be solved by using simple automation. Here we considered one artificial fishpond, four level sensors and three pumps for system monitor & control. Here we will write program that will control whole system. System will maintain normal level and it does not allow water level to go up or down to maintain the normal level. If water level goes down from the normal level then system will feed water in the fishpond and if water level goes up from the normal level then system will drain water from the fishpond. List of Inputs/Outputs Inputs List Level Sensor, L0 : I0.0 (L0=1 when the water level is above the alarm level). Level Sensor, L1 : I0.1 (L1=1 when the water level is above the normal level) Level Sensor, L2 : I0.2 (L2=1 when the water is above the normal level) Level Sensor, L3 : I0.3 (L3=1 when the water is above the alarm level) Outputs List Feeding pump :- Q0.0 Drainage pump 1 :- Q0.1 Drainage pump 2 :- Q0.2 Alarm lamp :- Q0.3 PLC Ladder Logic for artificial fishpond water level monitoring Logic Explained In this problem we will consider S7-300 PLC and TIA portal software for programming. Network 1: In this network, we have written logic for drainage pump 1 (Q0.1). When water level is above the highest level of alarm level (L3 = I0.3), at that time drainage pump 1 (Q0.1) will be ON. Network 2: If water level is below the alarm level then feeding pump (Q0.0) should be start. So here we have taken NC contact of L1 (I0.1), when level is below the normal level then feeding pump (Q0.0) will ON and fill the water in the fishpond. Network 3: If water level is above the normal level then the drainage pump 2 (Q0.2) will be ON. Here water level is above than the normal level, not alarm level, so only drainage pump2 (Q0.1) will work. Network 4: Here we have used two conditions in OR gate so either level is below normal level (L1 = I0.1) or above normal level (L1 = I0.1) then flashing circuit will be activated and alarm lamp (Q0.3) will be ON. Network 5: Timer 2 for flashing circuit. Network 6: Here we have used two conditions in OR gate so either level is below normal level (L1=01) or above normal level then alarm lamp (Q0.3) will flash automatically on 5 second interval. Level is above alarm level (L0=1, L1=1, L2=1, L3=1) or below alarm level (L0=0, L1=0, L2=0, L3=0) THEN alarm lamp will flash automatically on 5 seconds interval. Level is above alarm level (L0=0, L1=0, L2=0, L3=0) then drainage pump 1&2 will start and if water level is above normal then only drainage pump 2 will start. Note:- Above example is for explanation purpose only, not all parameters or interlocks are considered. It is not necessary to use S7-300 PLC for this simple logic, we have used this PLC for our discussion purpose. Result -
Modbus Communication between Delta PLC with VFD
leikang posted A plc and hmi english article in PLC programming learning
Modbus communication of delta PLC (DVP 14SS2) with delta VFD (VFD-L series). The motor is to be run directly from HMI (DOP-107CV) using Modbus communication. Delta PLC and VFD Modbus Communication The induction motor is to be run directly from HMI along with its speed control. Speed control is such that there should be two buttons in HMI that increase and decreases the speed of the motor by steps of one hertz (assume). There is a VFD-L series delta AC drive which will run the motor based on the commands received from PLC. Firstly, communication and other parameters need to be set in the drive matching all its configurations with the PLC such as baud rate, parity, communication mode, etc; except the slave ID (station address) which must be different from the PLC station address. By default, the PLC station address is equal to one (1). This means the station address of the drive must be anything in its defined range other than one (1). The detailed parameters to be set for the communication mode are as follows: 2-00 = 4 2-01 = 4 Communication Parameters We have to set the communication parameters as per the above table. (taken from manual). 9-00 = 2 (can be set to anything except 1) 9-01 = 1 9-04 = 7 (RTU mode, stop bits equal to 1 & parity to even) DVP 14SS2 has two communication ports namely RS232 and RS485 separately. Now, the communication port 2 settings need to be done according to the set parameters of VFD which are as follows. Open the WPL soft. (Delta PLC Software) Click on the Communication Program icon on the programming page. Select COM2 and press next. Set the parameters according to the VFD drive communication parameters and click Next. Here, they are fed according to the parameters set in the VFD-L dive. The station address of PLC is 1 (see left bottom corner) Check the highlighted and press next. One can check the boxes below and write the conditions. Here, we are skipping this window, and instead, we will write the logic directly on ladder diagram mode. Click Finish. Now, the following ladder logic is generated as a result of the above set conditions. The ladder in rung 2 executes each time a sent request is received. The ladder in rung 3 executes each time after any data is read from or written to the drive. Now, before moving further, the logic for starting and stopping the motor and its speed control is written, we need to find out the Modbus addresses of the drive through which the said will be executed. For the VFD-L series, 2000H is the Modbus address for starting & stopping the drive and 2001H is for the frequency change. Here, H denotes hexadecimal. In this topic, we are here to use the decimal format for the particular address. So hexadecimal must be changed to decimal format. Through the 8421 code, we would convert as follows: 2000 (Hex) = 8192 (Dec) 2001(Hex) = 8193 (Dec) So, instead of 200H & 2001H, 8192K & 8193K will be used. Make sure that 8192 & 8193 are only the Modbus addresses. If 8192K has a value equal to 10 then the motor will start. If 8192K has a value equal to 1 then the motor will stop. If 8193K has a value equal to 5000 then the motor will run on 50 Hz, which means if the speed of the motor needs to be increased by 1 Hz, 100 must be added to the existing value and vice versa. PLC Program Explanation Now, going to the details of the PLC program. Sending request bit M1122 is set each time any command is given to VFD in rung 5. MODRW K2 K6 K8192 D70 K1 MODRW represents Mod read write K2 represents the station address of the VFD. K6/K3 represents the function code whether to write or read. Here k6 represents write. K8192 represents the Modbus address to which data is written Data in D70 is written to k8192 K1 is the data length 10 (dec) and 1 (dec) are moved to D70 when start and stop commands are given in rungs 6 and 7. At the same time, the transmission of data takes place i.e data in D70 is written to the 8192k address of VFD in rung 8 to start and stop the motor. 100 (dec) is added to D100’s value in rung 10 to increase the speed by 1 Hz when the speed increase pulse (M4) is received. 100 (dec) is subtracted from D100’s value in rung 9 to decrease the speed by 1 Hz when the speed decrease pulse (M5) is received. At the same time, the transmission of data takes place i.e data in D100 is written to the 8193k address of VFD in rung 11 to start and stop the motor. HMI Now, coming to the HMI configuration. After selecting the HMI model, set the below configuration as here, PLC to HMI configuration is on RS232. (You have to configure it as per the HMI model) Take four momentary buttons, assign the addresses, and design the HMI screen as follows: Start = M0 Stop = M1 Increase speed = M4 Decrease speed = M5 Test the process The HMI design is not covered in this article. -
Алгоритмы управления в программировании ПЛК
leikang posted A plc and hmi russian article in PLC programming learning
Когда вы работаете в системе промышленной автоматизации для программирования ПЛК, у вас есть требования, при которых вам необходимо контролировать процесс постепенно или поэтапно. Алгоритмы управления Вы не можете напрямую включить или отключить логику выполнения своей работы. Это может оказать неблагоприятное воздействие на фактический выходной сигнал ПЛК. По этой причине в программе ПЛК доступны различные типы методов управления для соответствующих действий. В этом посте мы увидим различные методы алгоритмов управления, которые используются в программе ПЛК. ПИД-регулятор Это, безусловно, самый известный метод контроля. ПИД-регулятор использует механизм замкнутого контура управления. Это означает, что сначала он получит обратную связь и в зависимости от вашего желания будет соответствующим образом изменять выходные данные. Для этого ПИД-регулятор использует внутренние математические вычисления с тремя параметрами – пропорцией, интегралом и производной. Итак, если вы хотите управлять чиллером с компрессором, то ПЛК будет управлять выходной мощностью компрессора, сначала измеряя фактическую температуру и сверяя ее с тем, сколько требуется пользователю. В зависимости от этой разницы каждый раз мощность компрессора будет либо регулироваться постепенно, либо включаться-выключаться для поддержания температуры. Для этого в программе ПЛК для выполнения этой задачи будет использоваться блок ПИД. Генератор функций Это очень простой тип метода управления. В генераторе функций вам необходимо определить входную таблицу из n значений. Аналогичным образом определите выходную таблицу из n значений. Так, например, если мы определим 10 таблиц значений как на входной, так и на выходной стороне, у нас будет элемент размером 10. Теперь эти 10 элементов будут иметь разные значения. Если вы установили 0-100 на входной стороне, то мы установили 0-50 на выходной стороне. Эти 10 элементов представляют собой 10 диапазонов, то есть 0–10, 10–20, 20–30 и так далее. Соответственно, выходная сторона будет распределена на 10 элементов от 0 до 5, 5–10, 10–15 и так далее до 50. Когда ввод в реальном времени находится между любым значением на входной стороне, соответствующий масштабированный выход будет прошедший. Здесь у вас есть полная гибкость в установке значений входных и выходных таблиц. Нечеткое логическое управление Нечеткая логика — относительно очень хороший метод управления выходными данными. Обычно у вас есть два двоичных состояния – 0 и 1. Итак, давайте рассмотрим, может ли клапан быть открыт или закрыт. Но что, если клапан застрял между ними? Мы не знаем, находится ли клапан в открытом или закрытом состоянии. В этом случае помогает, если существует состояние между 0 и 1. Это помогает хотя бы приблизиться к возможности. Это называется суетливая логика. Здесь вы можете определить значения около 0 и 1. Это может быть 0,9 или 0,2. Соответственно, вы можете контролировать выходы, когда они приближаются к этим значениям. И когда он достигнет крайнего предела, то есть 0 или 1, можно полностью открыть или закрыть клапан. До этого можно постепенно управлять клапанами. Это обеспечивает более точный контроль процесса. Итак, этот блок управления позволяет собирать значения, которые могут быть полезны в непредсказуемых ситуациях. Требуется много знаний и опыта, чтобы правильно установить значения и наборы, чтобы логика работала правильно. Позиция пропорциональная Эта логика будет открывать или закрывать устройство, импульсно открывая или закрывая контакты в определенный заранее заданный таймер, установленный пользователем. Это делается для ширины импульса, пропорциональной отклонению между требуемым положением и текущим положением. Вам необходимо установить параметры управления, такие как минимальное и максимальное значение ограничения выхода, продолжительность, в течение которой выход будет оставаться включенным, скорость, с которой устройство должно открываться или закрываться в %/секунду и т. д. Функциональный блок принимает фактическую обратную связь, оценивает внутренние таймеры и проверяет, происходит ли открытие или закрытие с желаемой скоростью или нет. Если нет, то будет подан соответствующий импульс открытия или закрытия. Таким образом, мы увидели различные методы алгоритмов управления, используемые в программировании ПЛК. -
Документация по системе ПЛК
leikang posted A plc and hmi russian article in PLC programming learning
Документация ПЛК представляет собой очень важную инженерную документацию этапов управления процессом, и, как и все технические описания, необходимы точные подробные инженерные записи. Без точных чертежей изменения и модификации, необходимые для модернизации и диагностики, крайне затруднены или невозможны. Документация по системе ПЛК Каждый провод от ПЛК к оборудованию мониторинга и управления должен быть четко промаркирован и пронумерован на обоих концах и записан на электрической схеме. ПЛК должен иметь полные и актуальные лестничные схемы (или на другом утвержденном языке), и каждая ступенька должна быть помечена полным описанием ее функции. Основными документами в системе ПЛК являются: Обзор системы и полное описание работы управления; Структурная схема блоков системы; Полный список всех входов и выходов, пунктов назначения и номеров; Схема подключения модулей ввода-вывода, обозначение адреса для каждой точки ввода-вывода и расположение стоек; Лестничная диаграмма с описанием, номером и функцией ступени. Также необходимо иметь возможность моделировать лестничную программу в автономном режиме на персональном компьютере или в фоновом режиме в ПЛК, чтобы можно было выполнять изменения, обновления и моделирование неисправностей, не прерывая нормальную работу ПЛК. , а эффект от изменений и обновлений можно оценить до их внедрения. -
Инструкции сравнения в программировании ПЛК
leikang posted A plc and hmi russian article in PLC programming learning
Инструкции сравнения в ПЛК используются для проверки пар значений, чтобы обеспечить логическую непрерывность цепочки. Таким образом, инструкции сравнения редко, если вообще когда-либо, будут последней инструкцией в цепочке. Типы инструкций сравнения В качестве примера предположим, что инструкция LES представлена двумя значениями. Если первое значение меньше второго, то инструкция сравнения верна. Команда равенства (EQU) Используйте инструкцию EQU, чтобы проверить, равны ли два значения. Если источники A и источники B равны, инструкция логически верна. Если эти значения не равны, инструкция логически ложна. Источник A должен быть адресом. Источник B может быть либо программной константой, либо адресом. Значения хранятся в дополняющей друг друга форме. Инструкция «Не равно» (NEQ) Используйте инструкцию NEQ, чтобы проверить, не равны ли два значения. Если источники A и источники B не равны, инструкция логически верна. Источник A должен быть адресом. Источник B может быть либо программной константой, либо адресом. Значения хранятся в дополняющей друг друга форме. Инструкция «Меньше чем» (LES) Используйте инструкцию LES, чтобы проверить, меньше ли одно значение (источник A) другого (источник B). Если значение источника A меньше значения источника B, инструкция логически верна. Источник A должен быть адресом. Источник B может быть либо программной константой, либо адресом. Значения хранятся в дополняющей друг друга форме. Инструкция «Меньше или равно» (LEQ) Используйте инструкцию LEQ, чтобы проверить, меньше ли одно значение (источник A) другого (источник B) или равно ему. Если значение в источнике A меньше или равно значению в источнике B, инструкция логически верна. Источник A должен быть адресом. Источник B может быть либо программной константой, либо адресом. Значения хранятся в дополняющей друг друга форме. Инструкция «Больше, чем (GRT)» Используйте инструкцию GRT, чтобы проверить, больше ли одно значение (источник A) другого (источник B). Если значение в источнике A больше, чем значение в источнике B, инструкция логически верна. Инструкция «Больше или равно» (GEQ) Используйте команду GEQ, чтобы проверить, больше ли одно значение (источник A) другого (источник B) или равно ему. Если значение в источнике A больше или равно значению в источнике B, инструкция логически верна. Маскированное сравнение равных (MEQ) Используйте инструкцию MEQ для сравнения данных по адресу источника с данными по адресу сравнения. Использование этой инструкции позволяет маскировать части данных отдельным словом. Источник — это адрес значения, которое вы хотите сравнить. Маска — это адрес маски, через которую инструкция перемещает данные. Маска может быть шестнадцатеричным значением. Сравнение — это целое число или адрес ссылки. Если 16 бит данных по адресу источника равны 16 битам данных по адресу сравнения (без маскированных битов), инструкция верна. Инструкция становится ложной, как только обнаруживается несоответствие. Инструкция по предельному тесту (LIM) M) Используйте инструкцию LIM для проверки значений в пределах или за пределами указанного диапазона, в зависимости от того, как вы установили пределы. Значения нижнего предела, теста и верхнего предела могут быть адресами слов или константами, ограниченными следующими комбинациями: Если параметр Test является программной константой, параметры Low Limit и High Limit должны быть адресами слов. Если параметр «Тест» представляет собой адрес слова, параметры «Нижний предел» и «Верхний предел» могут быть либо программной константой, либо адресом слова. Статус true/false инструкции LIM Если значение нижнего предела равно или меньше верхнего предела, инструкция верна, когда тестовое значение находится между пределами или равно любому из пределов. Если нижний предел имеет значение, превышающее верхний предел, инструкция является ложной, если тестовое значение находится между пределами. -
Как использовать ПЛК с базой данных SQL?
leikang posted A plc and hmi russian article in PLC programming learning
В современном мире промышленной автоматизации данные играют очень важную роль. Получение мгновенных данных из источников и использование их для различных целей так же важно, как и запуск системы. Обычно каждый знает, как интегрировать SCADA с различными системами баз данных, например с SQL-серверами. Однако многие игнорируют возможности ПЛК в интеграции с базами данных. Их тоже можно использовать для этой цели. ПЛК с базой данных SQL Если мы используем ПЛК, программисты могут работать с ними в чрезвычайных ситуациях, таких как сбой SCADA, и выполнять свою работу, правильно ее кодируя. В этом посте мы увидим, как использовать ПЛК с базой данных SQL. Для тех, кто не знаком с SQL-сервером, это инструмент управления базой данных, который последовательно хранит большой объем данных в формате реального времени, и запросы для получения данных записываются в него либо через какой-то внешний источник, например ПЛК. Для хранения данных в нем написана логика в ПЛК, который при выполнении сохраняет данные в SQL. Это простая концепция, которая более кратко объясняется в статье из-за ее преимуществ. Планировщик ПЛК Предположим, у вас очень крупномасштабная система, в которой оператору ежедневно приходится вводить сотни графиков времени для работы определенных функций. Вместо того, чтобы использовать обширное кодирование и переменные в ПЛК для хранения данных, введенных в SCADA, и использовать их, когда придет время, просто передавайте все переменные данные на SQL-сервер через ПЛК каждый раз, когда создается новый рецепт. SQL будет хранить дату и время введенных значений в реальном времени и предоставит операторам возможность выбирать их в соответствии с отфильтрованной датой и временем. Например, в SQL есть пять записей с 1 по 5 октября для различных типов введенных расписаний. Преимущество в том, что оператор может выбрать любой необходимый и затем запустить систему. Если бы SQL не было, ему пришлось бы запускать только один вариант: 1 октября или любую другую дату. В противном случае ему пришлось бы использовать память SCADA или ПЛК, что является пустой тратой данных и кодирования. То же самое становится проще благодаря SQL-серверу. Еще одним преимуществом является то, что размер кода SCADA уменьшается и его можно использовать для других целей. Планирование используется во многих приложениях, а использование для него ПЛК вместе с SQL делает систему более эффективной. Последовательность действий Рассмотрим растение, имеющее 10 последовательностей. В каждой последовательности имеется считыватель штрих-кодов для запуска действия с необходимым продуктом. Если штрих-код считывается в SCADA, то соответствующие данные передаются в ПЛК или, короче говоря, SCADA является промежуточным средством для инициирования связи между ПЛК и данными; затем просто подключите ПЛК напрямую к SQL. SQL будет напрямую взаимодействовать с ПЛК для определения штрих-кодов и других данных для запуска или остановки последовательности. Такие большие объемы данных о последовательностях объектов помогают сократить количество кода в SCADA и ускоряют работу системы. Поскольку ПЛК написан с кодировкой для последовательной работы, почему бы не соединить его напрямую с SQL и не использовать систему. Синхронизировать несколько ПЛК Существует множество приложений, в которых одному ПЛК в одном месте для выполнения работы требуются данные из другого местоположения ПЛК. В этом случае традиционно для интеграции всех ПЛК и управления ими используется SCADA. В том случае, если ПЛК напрямую подключены к SQL-серверу, данные будут синхронизироваться по дате и времени SQL; таким образом, устраняются проблемы синхронизации нескольких RTC (часов реального времени) ПЛК. Кроме того, ПЛК будет напрямую связываться с другим ПЛК для запроса каких-либо данных или предоставления каких-либо данных через сервер SQL. Любой сигнал тревоги или событие в ПЛК также будет передано на другой ПЛК и поможет отслеживать записи в реальном времени. Подтверждение связи Квитирование — это процесс, при котором одна сторона подтверждает другой стороне, что задание выполнено. По сути, это реакция, необходимая для того, чтобы партия могла начать другую работу. Этот метод хорошо работает с серверами PLC и SQL. SQL-сервер может напрямую взаимодействовать с ПЛК, отправляя уведомления о событиях в режиме реального времени или данные уведомлений о тревогах в режиме реального времени. Это означает, что предположим, что выполнение задания заняло 3 дня. Затем подтверждение завершения будет отправлено в ПЛК как отдельное событие, и, поскольку в нем также содержатся данные за 3 дня, оператор может легко просмотреть весь процесс в отчетах SCADA. Таким образом, квитирование является важной причиной для прямой связи ПЛК с SQL. Основы базы данных ПЛК Установите соединение между ПЛК и базой данных SQL с помощью промежуточного программного обеспечения или шлюза, который облегчает взаимодействие между протоколами промышленных сетей и языками баз данных. Выберите протокол связи, понятный как ПЛК, так и базе данных SQL, например OPC UA, Modbus TCP или любой другой протокол, поддерживаемый вашим ПЛК и промежуточным программным обеспечением. Настройте ПЛК для отправки и получения данных, настроив необходимые параметры, регистры или теги, которые будут считываться или записываться. Это может включать программирование ПЛК с использованием соответствующего программного обеспечения, чтобы убедиться, что он готов к обмену данными. Настройте базу данных SQL, создав новую базу данных или настроив существующую для хранения данных из ПЛК. Определите таблицы, столбцы и типы данных, соответствующие структуре данных, отправляемых из ПЛК. Сопоставьте каждую точку данных ПЛК с соответствующим полем в базе данных SQL. Убедитесь, что типы данных совместимы и что сопоставление имеет логический смысл для нужд приложения. Реализуйте логику передачи данных с помощью сценариев или хранимых процедур базы данных. Определите, как часто данные должны передаваться, при каких условиях и должна ли передача запускаться по событиям или по расписанию. Тщательно проверьте связь между ПЛК и базой данных SQL. Проверьте наличие ошибок или несоответствий данных и убедитесь, что система ведет себя должным образом в различных условиях. Постоянно контролируйте работоспособность системы, точность данных и любые аномалии. Настройте оповещения или уведомления о системных ошибках или важных событиях. Регулярно проверяйте и обновляйте систему по мере необходимости, чтобы учесть изменения в настройке ПЛК, структуре базы данных или дополнительных требованиях. Постоянно обновляйте документацию на предмет любых изменений в системе. Обеспечьте наличие мер безопасности как для ПЛК, так и для базы данных SQL для защиты от несанкционированного доступа и утечки данных. Рассмотрите возможность внедрения шифрования, межсетевых экранов и протоколов безопасного доступа. -
Как устранить неполадки в системе ПЛК?
leikang posted A plc and hmi russian article in PLC programming learning
В этом посте я дам несколько основных инструкций, основанных на моем личном опыте, чтобы дать вам представление о том, как устранять неполадки в системах автоматизации (ПЛК/РСУ): Устранение неполадок в системах автоматизации в целом имеет ту же тактику, чтобы найти решение. вины системы. Тем не менее, в зависимости от сложности и размера приложения и конкретной системы автоматизации этапы устранения неполадок будут немного другими или более сложными. Лучшие знания можно получить на практике и в реальных условиях устранения неполадок. По моему мнению, практика снова и снова – это решение. Любые дополнения и комментарии приветствуются!! Устранение неполадок в системе ПЛК Прежде чем продолжить, мы согласны с тем, что современные системы автоматизации имеют ПЛК для управления приложением. Если у нас небольшое приложение, то в системе, возможно, есть микроПЛК (или наноПЛК) или другой тип компактного контроллера (во многих случаях это зависит от приложения). Я сказал «современные системы автоматизации», потому что в прошлом (до появления ПЛК/других компактных контроллеров) хорошо известный и используемый компаниями-разработчиками средств автоматизации), управление системой автоматизации осуществлялось только с помощью реле. Исследуйте программу контроллера Первое, что нам нужно сделать, это выяснить, выполняются ли у нас правильные условия для ошибочной операции. Для этого нам нужно найти «разум» нашей системы. Этим «разумом» является контроллер (либо это своего рода ПЛК, либо другой тип компактного контроллера). Если у нас не выполняются правильные условия, нам следует изучить программу контроллера, чтобы выяснить причину проблемы (ВСЕГДА проверяйте сообщения в SCADA. Это поможет быстрее найти решение, поскольку в SCADA появляется важная информация, такая как неисправность). /описание сигнала тревоги или конкретный адрес в ПЛК). То, что мы обнаружим, - это либо неисправный сигнал от аппаратного обеспечения (например, цифровой сигнал от кнопки, или цифровой сигнал от механического переключателя, или цифровой сигнал от контакта реле, который «не приходит» на вход контроллера или аналоговый сигнал, имеющий неправильные значения) или ошибочный сигнал от другой программной системы (например, SCADA). Исследуйте условия, исходящие от оборудования Когда мы сделаем вывод о причине проблемы, мы оставляем на некоторое время программу контроллера и выходим проверить наши выводы. Мы уже должны найти чертежи системы автоматизации, чтобы увидеть соединения компонентов, которые мы хотим проверить. Например, если мы обнаруживаем, что у нас есть цифровой сигнал с кнопки, который «не приходит» на вход контроллера, то берем мультиметр и идем проверять кнопку. Если кнопка в порядке, то исследуем, есть ли любой предохранитель между кнопкой и входом контроллера. Если есть, то проверяем. Если предохранитель в порядке, то исследуем трассу кабеля. Возможно, у нас перерезан кабель. Если кабель в порядке, то, возможно, у нас аппаратная проблема со входом контроллера и, возможно, нам следует заменить этот входной модуль на новый или как-то починить его (ремонт должен выполнять квалифицированный персонал). Исследуем аппаратную часть после выходов нашего контроллера Если мы пришли к выводу, что у нас правильные условия, то нам следует проверить компоненты, которые находятся между контроллером и неисправным оборудованием (имеется в виду оборудование, которое не работает должным образом). Например, если у нас есть промышленная печь, которая не закрывает свою дверь (хотя у нас есть условия для закрытия двери из программы), возможно у нас неисправно реле, которое питается от ПЛК (или другого контроллера) на закрытие двери. Если реле в порядке, то возможно у нас проблема проблема с моторчиком, который отвечает за закрытие двери. Мы должны проверить состояние двигателя (обмотки двигателя, механические части). Если двигатель в порядке, мы должны проверить значения напряжения, поступающие на вход двигателя (с помощью нашего мультиметра), а также проверить состояние кабеля, если измерения мультиметра неверны. Если напряжение и кабель в порядке, то, возможно, у нас заклинило где-то в конструкции дверцы печи. Силовые агрегаты – это «плюс»! Как правило, когда в нашей системе автоматизации есть силовые агрегаты (приводы) для привода двигателя, нам необходимо иметь вместе руководство конкретного силового агрегата. Это потому, что силовые агрегаты имеют цифровой дисплей, 7-сегментные светодиодные дисплеи или простые Светодиоды информируют нас о неисправности, которая существует внутри них или на ведомом двигателе. Это очень полезно для инженеров и техников. Кроме того, современные силовые агрегаты имеют специальные алгоритмы проверки состояния двигателя, значений напряжения, тока и т. д. Например, если двигатель перегрелся, привод сообщит нам об этом, поскольку постоянно проверяет датчик температуры (например, термистор), который находится внутри. Корпус двигателя. Затем мы должны проверить двигатель, не перегрелся ли он на самом деле или у нас неисправен датчик температуры, который следует заменить. Проверьте статус контроллеров Иногда, когда ЦП нашего ПЛК обнаруживает неприемлемое состояние в ходе выполнения программы, он переходит в режим «СТОП» и, возможно, мигает светодиод, указывая на эту неисправность. Кроме того, если в системе происходит какая-либо другая неисправность, некоторые Светодиоды указывают тип неисправности (дополнительную информацию см. в руководстве по эксплуатации контроллера). Такое же поведение наблюдается в целом у любого типа контроллера, установленного в системе автоматизации. Системы безопасности Многие системы автоматизации (часто производственные машины) имеют в своей конструкции некие «системы безопасности», такие как «Pilz» или «Siemens Sirius». Это умные компактные контроллеры для мониторинга таких ситуаций, как открытие защитной двери или аварийный останов. При возникновении чего-либо из вышеперечисленного система безопасности прекращает работу системы автоматизации для защиты человека и машины. Для возврата системы автоматизации в функциональное состояние в руководствах по системам безопасности имеются специальные указания. Вывод из всего вышесказанного — иметь пошаговую тактику устранения неполадок. Со временем и набравшись опыта, возможно, мы пропустим некоторые шаги, особенно если мы являемся персоналом, ответственным за обслуживание системы, с которой мы сталкиваемся каждый день. Однако хорошая тактика — быть организованными и терпеливыми. Удачи в ваших усилиях! -
SIEMENS-RU Как устранить неполадки в программах ПЛК Сименс?
leikang posted A plc and hmi russian article in PLC programming learning
Эта статья посвящена методу устранения неполадок при программировании ПЛК. В промышленных ПЛК, где используются тысячи входов и выходов, и мы знаем, насколько продолжительны программы ПЛК, это зависит от приложения или использования предприятия. Устранение неполадок в программах ПЛК Сименс Иногда люди могут неосознанно изменить логические параметры, что может привести к неисправности. Даже некоторые ошибки возникают на этапе проектирования логики из-за сложности конструкции. Программное обеспечение Siemens plc включает в себя различные удобные инструменты для устранения ошибок, возникающих в программах. Ошибки могут быть такими, как перекрытие адресации, несколько одинаковых экземпляров вывода, перекрытие адресов битов памяти, многократное использование одной программы для работы снова и снова и т. д. Чтобы обнаружить такие проблемы, в программном обеспечении Siemens доступны четыре типа окон, которые помогут нам устранить проблемы. Они есть: Перекрестная ссылка Структура звонка Список назначений Структура зависимостей Давайте обсудим, как их использовать в нашей программе для устранения неполадок и где их найти в программном обеспечении. Перекрестная ссылка Перекрестные ссылки используются для поиска всех цифровых и аналоговых входов и выходов, используемых в логике. Это поможет нам узнать, сколько раз входы/выходы используются в программе, а также направит пользователей непосредственно к конкретному месту ввода/вывода на страницах логики. Вот пример одной из программ, в которой можно увидеть, как выглядит таблица перекрестных ссылок. Он содержит всю информацию, такую как адресация, язык программы, используемые входы и выходы и т. д. Структура звонка Если вы хотите узнать, какой блок используется в программировании, используется структура вызова. Это обращение функции перекрестных ссылок, в которой мы узнаем, сколько раз SFC, блок FB используются в OB (организационном блоке), и здесь мы узнаем, сколько раз OB используется в SFC и FB. Список назначений Список назначений — очень полезная функция, когда нужно узнать, сколько входов, выходов, таймеров и счетчиков используется в нашем приложении и сколько из них еще осталось, чтобы мы могли использовать их в будущих логах. Структура зависимостей Структура зависимостей используется, чтобы показать, где каждый блок используется в программировании. Но на шаге 7 он не доставит вас прямо на локацию, а в TIA PORTAL перенесет вас туда, где написана программа. ПРИМЕЧАНИЕ: Чтобы открыть эти окна на шаге 7, используйте информацию, как показано на рисунке. После нажатия на дисплей у вас есть варианты. В TIA PORTAL выполните следующий шаг, показанный на рисунке. -
Как фильтровать цифровые и аналоговые входы в ПЛК?
leikang posted A plc and hmi russian article in PLC programming learning
В этом посте мы поймем, как фильтровать цифровые и аналоговые входы в ПЛК. Как сказано в теме, фильтрация — это средство удаления нежелательных всплесков сигналов, поступающих в ПЛК. Его роль заключается в устранении флуктуаций и передаче в ПЛК только правильных изменений сигнала в определенный момент времени. Внутри ПЛК сначала идет схема фильтра, а затем схема обработки ввода ПЛК, которая принимает окончательный отфильтрованный входной сигнал и использует его для своей логики. Фильтры цифрового входа ПЛК Давайте сначала рассмотрим цифровой вход. Роль входа с фильтром состоит в том, чтобы принять входной сигнал цифрового поля и передать его в схему обработки через фильтр. Если вы видите изображение ниже, оно состоит из двух частей. Прежде всего, зеленый кружок указывает, что изменение ввода будет принято, а красный кружок показывает, что изменение ввода не будет передано. В первой (выше) части есть два изменения, в которых много колебаний, и эти входные изменения будут обойдены. Есть два изменения, при которых нет колебаний, и это входное изменение будет передано в схему обработки. То же самое и со второй (ниже) частью теории. Это возможно с помощью фильтрации. Фильтрация определяется фактором или временем. Предположим, вы установили время 3 мс. Роль фильтра состоит в том, чтобы принимать только те входные изменения, которые остаются выше 3 мс. Если входные данные изменятся раньше, чем через 3 мс, то эти входные данные не будут учитываться и будут игнорироваться. Это означает, что короткими и высокочастотными импульсами помех можно будет пренебречь. Эта логика аналогична таймеру устранения дребезга, который мы прописываем в логике ПЛК. На изображении ниже лампа включится только тогда, когда входной сигнал кнопки запуска остается высоким в течение 3 секунд. Это та же самая логика, которая используется в цифровом проходном фильтре. Он передаст изменение входа в обрабатывающую часть только тогда, когда этот вход сохраняет состояние (высокий или низкий) в течение установленного времени. Помимо времени, как уже говорилось, некоторые ПЛК имеют возможность установки коэффициента вместо времени. Фактор рассчитывает внутреннее время и определяет уровень фильтрации. Чем выше значение коэффициента, тем выше мощность фильтрации. Фильтры аналогового входа ПЛК Теперь давайте посмотрим на фильтрацию аналоговых входов. Поскольку аналоговые входы по своей природе являются переменными, логика фильтра для них не может быть реализована так же, как для цифровых входов. Итак, в аналоговых входах используется логика усреднения. Фильтр усредняет значения, полученные за определенное время, и выдает среднее конечное значение за это время. Обратитесь к изображению ниже для исследования. Первый – синий цвет имеет коэффициент 1. Второй – зеленый цвет имеет коэффициент 2. Третий – оранжевый цвет имеет коэффициент 3. Четвертый – коричневый цвет имеет коэффициент 4. По мере увеличения значения коэффициента фильтра вы можете видеть, что форма сигнала улучшается за счет фильтрации сигнала с более резким значением. Через заданное время фильтр усреднит значения, полученные от входных данных; и на основе формул, используемых внутри него, он выдаст окончательный средний результат за раз. Таким образом, по мере увеличения коэффициента фильтра или веса мы получаем более точное значение аналогового сигнала с меньшими помехами. Обычно для этой цели используется фильтр первого прохода. Таким образом, мы приходим к выводу, что фильтрация очень полезна для уменьшения нежелательного шума на входе поля и передачи правильных значений, что также защитит входную цепь ПЛК от повреждения; если возникают какие-либо высокие или нежелательные пики. -
Контакты и катушки в лестничной логике ПЛК
leikang posted A plc and hmi russian article in PLC programming learning
Самыми элементарными объектами программирования лестничных диаграмм являются контакты и катушки, предназначенные для имитации контактов и катушек электромеханических реле. Контакты и катушки представляют собой дискретные элементы программирования, работающие с логическими состояниями переменных (1 и 0; включено и выключено; истинно и ложно). Каждый контакт в программе ПЛК лестничной схемы представляет собой чтение одного бита в памяти, а каждая катушка представляет запись одного бита в памяти. Дискретные входные сигналы ПЛК от реальных переключателей считываются программой лестничных диаграмм с помощью контактов, привязанных к этим входным каналам. В устаревших системах ПЛК каждый дискретный входной канал имеет определенный адрес, который необходимо применить к контакту(ам) в этой программе. В современных системах ПЛК каждый дискретный входной канал имеет имя тега, созданное программистом, которое применяется к контакту(ам) в программе. Аналогичным образом, дискретные выходные каналы, на которые ссылаются символы катушек на лестничной диаграмме, также должны иметь некоторую форму адреса или метки имени тега. Для иллюстрации представим себе построение и программирование резервной системы обнаружения пламени для контроля состояния пламени горелки с помощью трех датчиков. Целью данной системы будет индикация «зажженной» горелки, если хотя бы два из трех датчиков покажут пламя. Если только один датчик указывает на пламя (или если ни один из датчиков не указывает на пламя), система объявит горелку не зажженной. Статус горелки будет визуально обозначаться лампочкой, которую операторы смогут легко видеть внутри диспетчерской. Схема подключения нашей системы показана на следующей схеме: Каждый датчик пламени выдает сигнал постоянного напряжения, указывающий на обнаружение пламени на горелке, либо включенной (24 В постоянного тока), либо выключенной (0 В постоянного тока). Эти три дискретных сигнала напряжения постоянного тока воспринимаются первыми тремя каналами карты дискретного ввода ПЛК. Индикаторная лампа представляет собой лампочку на 120 В, поэтому ее питание должно осуществляться от карты дискретного выхода переменного тока, показанной здесь в последнем слоте ПЛК. Чтобы сделать лестничную программу более читабельной, мы назначим имена тегов (символические адреса) каждому входному и выходному биту ПЛК, описывая его реальное устройство в легко интерпретируемом формате. Мы обозначим первые три дискретных входных канала как датчик IN A, датчик IN B и датчик IN C, а выход — как горит горелка OUT. Здесь показана лестничная программа, позволяющая определить, обнаруживают ли по крайней мере два из трех датчиков пламя, с именами тегов, относящимися к каждому контакту и катушке: Последовательно соединенные контакты в лестничной схеме выполняют логическую функцию И, а параллельные контакты выполняют логическую функцию ИЛИ. Таким образом, эту программу обнаружения пламени «два из трех» можно словесно описать так: «Горелка горит, если либо A и B, либо B и C, либо либо A и C» Альтернативный способ выразить это — использовать обозначения булевой алгебры, где умножение представляет функцию И, а сложение представляет функцию ИЛИ: Burner_lit = AB + BC + AC Еще один способ представить эту логическую связь — использовать символы логических элементов: Чтобы проиллюстрировать, как будет работать эта программа, мы рассмотрим случай, когда датчики пламени B и C обнаруживают пламя, а датчик A — нет (Примечание 1). Это представляет собой два из трех хороших условий, и поэтому мы ожидаем, что ПЛК включит индикатор «Горелка горит», как запрограммировано. Со стороны стойки ПЛК мы видим, как на плате дискретного входа загораются светодиоды-индикаторы датчиков B и C, а также светодиод-индикатор выходного канала лампы: Примечание 1. Наиболее вероятной причиной того, что один из двух датчиков пламени может не обнаружить наличие пламени, является некоторая форма смещения или загрязнения датчика пламени. Фактически, это веская причина для использования системы обнаружения пламени 2 из 3, а не симплексной схемы детектора (1 из 1): сделать систему более устойчивой к случайным проблемам с датчиками без ущерба для горелки. безопасность. Эти два входных канала, находящихся под напряжением, «устанавливают» биты (состояние 1) в памяти ПЛК, представляющие состояние датчиков пламени B и C. Бит датчика пламени A будет «чистым» (состояние 0), поскольку соответствующий входной канал обесточен. Тот факт, что светодиод выходного канала включен (и горит индикаторная лампа «Горелка горит»), говорит нам, что программа ПЛК «установила» соответствующий бит в регистре выходной памяти ПЛК в состояние «1». Отображение битов входного и выходного регистра показывает состояния «установки» и «сброса» ПЛК в данный момент времени: Исследуя программу Ladder Diagram с включенной индикацией состояния, мы видим, что только средняя пара контактов передает «виртуальную мощность» на выходную катушку: Напомним, что целью контакта в программе ПЛК является чтение состояния бита в памяти ПЛК. Эти шесть «виртуальных контактов» считывают три входных бита, соответствующие трем датчикам пламени. Каждый нормально разомкнутый «контакт» «замыкается», когда соответствующий бит имеет значение 1, и «размыкается» (переходит в нормальное состояние), когда соответствующий бит имеет значение 0. Таким образом, мы видим здесь, что два контакта, соответствующие датчику A, появляются без подсветки (что означает отсутствие «проводимости» в схеме виртуального реле), поскольку бит для этого входа сброшен (0). Два контакта, соответствующие датчику B, и два контакта, соответствующие датчику C, отображаются выделенными (представляющими «проводимость» в виртуальной схеме), поскольку оба их бита установлены (1). Напомним также, что назначение катушки в программе ПЛК — запись состояния бита в память ПЛК. Здесь «активированная» катушка устанавливает бит для выхода 0 ПЛК в состояние «1», тем самым активируя реальный выход и отправляя электроэнергию на лампу «Горелка горит». Обратите внимание, что цветовое выделение не означает, что виртуальный контакт проводит виртуальную энергию, а лишь указывает на то, что он способен проводить энергию. Однако цветовая подсветка вокруг виртуальной катушки указывает на наличие виртуальной «мощности» в этой катушке. Контакты и реле полезны не только для реализации простых логических функций, но также могут выполнять функции фиксации. Очень распространенным применением этого в промышленных системах ПЛК является программа запуска/останова с фиксацией для управления электродвигателями с помощью кнопочных переключателей с мгновенным контактом. Как и раньше, эта функциональность будет проиллюстрирована с помощью гипотетического примера схемы и программы: В этой системе два кнопочных переключателя подключены к дискретным входам ПЛК, а ПЛК, в свою очередь, подает питание на катушку контактора двигателя посредством одного из своих дискретных выходов. Контакт перегрузки подключается непосредственно последовательно с катушкой контактора, чтобы обеспечить защиту двигателя от перегрузки по току даже в случае отказа ПЛК, когда канал дискретного вывода остается под напряжением (примечание 2). Лестничная программа для этой системы управления двигателем будет выглядеть так: Примечание 2. Хотя можно подключить контакт перегрузки к одному из дискретных входных каналов ПЛК, а затем запрограммировать виртуальный контакт перегрузки последовательно с выходной катушкой для остановки двигателя в случае тепловой перегрузки, эта стратегия будет основываться на ПЛК для выполнения функции безопасности, которую, вероятно, лучше выполняет проводная схема. Нажатие кнопки «Пуск» активирует канал дискретного входа 6 ПЛК, который «замыкает» виртуальный контакт в программе ПЛК, обозначенный IN-переключателем «Пуск». Нормально закрытый виртуальный контакт для входного канала 7 (кнопка «Стоп») по умолчанию уже закрыт, когда кнопка «Стоп» не нажата, поэтому виртуальная катушка будет получать «питание» при нажатии кнопки «Старт». нажата, а кнопка «Стоп» — нет. Обратите внимание на герметичный контакт с той же маркировкой, что и на катушке: контактор OUT. На первый взгляд может показаться странным, что и контакт, и катушка в программе ПЛК имеют одинаковую маркировку (примечание 3), поскольку контакты чаще всего связаны с входами, а катушки с выходами, но это имеет смысл, если вы понимаете истинный смысл контакты и катушки в программе ПЛК: как операции чтения и записи битов в памяти ПЛК. Катушка с надписью OUT contactor записывает состояние этого бита, а контакт с надписью OUT contactor считывает состояние того же бита. Цель этого контакта, конечно, состоит в том, чтобы зафиксировать двигатель во включенном состоянии после того, как человек-оператор отпустит палец с кнопки «Пуск». Примечание 3. Очень распространенное заблуждение среди студентов, впервые изучающих программирование лестничных диаграмм ПЛК, заключается в том, что контакты всегда связываются с входами ПЛК, а катушки с выходами ПЛК, поэтому кажется странным, что контакт имеет ту же маркировку, что и выход. Однако это ложная ассоциация. В действительности контакты и катушки представляют собой инструкции чтения и записи, поэтому ПЛК может читать один из своих собственных выходных битов как часть некоторой логической функции. Что было бы действительно странно, так это маркировать катушку адресом входного бита или именем тега, поскольку ПЛК электрически не способен устанавливать реальный статус включения каких-либо входных каналов. Этот метод программирования известен как обратная связь, где выходная переменная функции (в данном случае переменная обратной связи — выходной контактор) также является входом той же функции. Путь обратной связи в программировании лестничных диаграмм является скорее неявным, чем явным, причем единственным признаком обратной связи является общее имя, общее для катушки и контакта. Другие языки графического программирования (например, функциональные блоки) имеют возможность отображать пути обратной связи как соединительные линии между выходами и входами функций, но эта возможность не существует в лестничной диаграмме. Пошаговая последовательность, показывающая работу и состояние этой простой программы, иллюстрирует, как работает герметичный контакт в ходе цикла запуска и остановки двигателя: Эта последовательность помогает проиллюстрировать порядок оценки или порядка сканирования программы лестничной диаграммы. ПЛК читает лестничную диаграмму слева направо, сверху вниз в том же порядке, в котором человек читает предложения и абзацы, написанные на английском языке. Однако, согласно стандарту IEC 61131-3, программа ПЛК должна оценивать (считывать) все входы (контакты) функции, прежде чем определять состояние выхода функции (катушки или катушек). Другими словами, ПЛК не принимает никакого решения о том, как установить состояние катушки, пока не будут прочитаны все контакты, обеспечивающие питание этой катушки. Как только статус катушки будет записан в память, все контакты, имеющие одно и то же имя тега, будут обновляться с этим статусом на последующих ступенях программы. Шаг 5 в предыдущей последовательности особенно показателен. Когда человек-оператор нажимает кнопку «Стоп», активируется входной канал для IN-переключателя Stop, который «открывает» нормально замкнутый виртуальный контакт IN-выключателя Stop. При следующем сканировании этой цепочки программы ПЛК оценивает все входные контакты (выключатель IN Start, переключатель IN Stop и контактор OUT), чтобы проверить их состояние, прежде чем решить, какое состояние записать в катушку контактора OUT. Видя, что стоп-контакт переключателя IN был принудительно разомкнут в результате активации соответствующего дискретного входного канала, ПЛК записывает состояние «0» (или «Ложь») на катушку контактора OUT. Однако контакт обратной связи выходного контактора не обновляется до следующего сканирования, поэтому на этапе 5 он по-прежнему выделяется цветом. Потенциальная проблема этой системы в ее конструкции заключается в том, что человек-оператор теряет контроль над двигателем в случае обрыва проводки в любой из цепей кнопочного переключателя. Например, если провод отвалился от винтового контакта цепи кнопочного переключателя «Пуск», двигатель не мог быть запущен, если он уже был остановлен. Аналогичным образом, если провод отвалился от винтового контакта цепи кнопочного выключателя «Стоп», двигатель не мог быть остановлен, если он уже работал. В любом случае обрыв проводного соединения действует так же, как «нормальное» состояние кнопочного переключателя, то есть удерживает двигатель в его текущем состоянии. Для некоторых приложений этот режим отказа не будет серьезной проблемой. Однако во многих приложениях довольно опасно иметь работающий двигатель, который невозможно остановить. По этой причине принято проектировать системы запуска/остановки двигателя несколько иначе, чем показано здесь. Чтобы построить систему управления двигателем «при отказе» с помощью нашего ПЛК, мы должны сначала перемонтировать кнопочный переключатель, чтобы использовать его нормально замкнутый (НЗ) контакт: Благодаря этому канал дискретного входа 7 остается активным, когда кнопка не нажата. При нажатии оператором кнопки «Стоп» контакт выключателя принудительно размыкается и входной канал 7 обесточивается. Если провод выпадет из винтовой клеммы в цепи переключателя «Стоп», входной канал 7 обесточится точно так же, как если бы кто-то нажал кнопку «Стоп», что автоматически отключит двигатель. Чтобы программа ПЛК работала правильно с этой новой проводкой переключателя, виртуальный контакт для переключателя IN Stop должен быть изменен с нормально закрытого (NC) на нормально разомкнутый (NO): Как и раньше, виртуальный контакт остановки переключателя IN находится в «закрытом» состоянии, когда никто не нажимает переключатель «Стоп», что позволяет двигателю запуститься в любое время при нажатии переключателя «Пуск». Аналогичным образом, виртуальный контакт остановки переключателя IN размыкается каждый раз, когда кто-то нажимает переключатель «Стоп», тем самым прекращая подачу виртуальной «мощности» на катушку контактора ВЫХОДА. Хотя это очень распространенный способ создания систем запуска/остановки двигателя, управляемых ПЛК – с кнопочным переключателем НЗ и виртуальным контактом «Стоп» NO – студенты, плохо знакомые с программированием ПЛК, часто находят этот логический разворот запутанным. Возможно, наиболее распространенной причиной этой путаницы является неправильное понимание «нормальной» концепции контактов переключателя, реальных или виртуальных. Виртуальный контакт остановки переключателя IN запрограммирован как нормально разомкнутый (НО), но обычно он находится в закрытом состоянии. Напомним, что «нормальным» состоянием любого переключателя является его состояние в состоянии покоя без стимуляции, а не обязательно его состояние, когда процесс находится в «нормальном» рабочем режиме. «Нормально открытый» виртуальный контакт IN-переключателя Stop обычно находится в закрытом состоянии, поскольку соответствующий ему входной канал обычно находится под напряжением благодаря нормально замкнутому контакту кнопочного переключателя, который передает реальную электрическую мощность на входной канал, в то время как никто нажимает переключатель. Тот факт, что переключатель настроен как нормально разомкнутый, не обязательно означает, что он обычно находится в разомкнутом состоянии! Состояние любого контакта переключателя, реального или виртуального, зависит от его конфигурации (НО или НЗ) и приложенного к нему воздействия. Еще одна проблема, связанная с реальными проблемами с проводкой, заключается в том, что будет делать эта система, если цепь катушки контактора двигателя разомкнется по какой-либо причине. Разрыв цепи может возникнуть в результате падения провода с винтовой клеммы или из-за размыкания контакта тепловой перегрузки из-за перегрева. Проблема с нашей системой запуска/остановки двигателя в том виде, в котором она спроектирована, заключается в том, что она «не знает» о реальном состоянии контактора. Другими словами, ПЛК «думает», что контактор будет под напряжением каждый раз, когда на канал дискретного выхода 2 будет подано напряжение, но на самом деле это может быть не так, если в цепи катушки контактора происходит обрыв. Это может привести к опасной ситуации, если позже будет устранено открытое замыкание в цепи катушки контактора. Представьте себе, что оператор нажимает кнопку «Пуск», но замечает, что двигатель на самом деле не запускается. Задаваясь вопросом, почему это может быть, он или она идет посмотреть на реле перегрузки, чтобы убедиться, что оно не сработало. Если он сработал и оператор нажимает кнопку «Сброс» на блоке защиты от перегрузки, двигатель немедленно запустится, поскольку дискретный выход ПЛК остается под напряжением все время после нажатия переключателя «Пуск». Запуск двигателя сразу после сброса тепловой перегрузки может стать неожиданностью для эксплуатационного персонала, и это может быть весьма опасно, если кто-нибудь окажется рядом с оборудованием с приводом от двигателя во время его запуска. Что было бы безопаснее, так это система управления двигателем, которая отказывается «фиксироваться», если на контактор не подается питание при нажатии кнопки «Пуск». Чтобы это было возможно, ПЛК должен иметь какой-то способ определения состояния контактора. Чтобы ПЛК «знал» о реальном состоянии контактора, мы можем подключить контакт вспомогательного переключателя к одному из неиспользуемых дискретных входных каналов ПЛК, например: Теперь ПЛК может определять состояние контактора в реальном времени через входной канал 5. Мы можем изменить программу ПЛК, чтобы распознавать это состояние, назначив этому входу новое имя тега (дополнительный входной контактор) и используя нормально разомкнутый виртуальный контакт с этим именем в качестве герметичного контакта вместо бита выходного контактора: Теперь, если на контактор по какой-либо причине не подается питание, когда оператор нажимает переключатель «Пуск», выход ПЛК не сможет зафиксироваться при отпускании переключателя «Пуск». Когда обрыв в цепи катушки контактора устранен, двигатель не запустится сразу, а будет ждать, пока оператор снова не нажмет кнопку «Пуск», что является гораздо более безопасной рабочей характеристикой, чем раньше. Особый класс виртуальной «катушки», используемый в лестничном программировании ПЛК, о котором следует упомянуть, — это «защелкивающаяся» катушка. Обычно они бывают двух видов: катушка установки и катушка сброса. В отличие от обычной «выходной» катушки, которая положительно записывает бит в память ПЛК при каждом сканировании программы, катушки «установки» и «сброса» записывают бит в память только при включении виртуальной энергии. В противном случае биту разрешается сохранить свое последнее значение. Очень простую программу запуска/остановки двигателя можно написать всего лишь с двумя входными контактами и двумя фиксирующими катушками (обе имеют одно и то же имя тега и записывают в один и тот же бит памяти): Обратите внимание на использование нормально разомкнутого (НО) контакта кнопочного переключателя (снова!), без вспомогательного контакта, обеспечивающего индикацию состояния контактора для ПЛК. Это очень минимальная программа, показанная исключительно с целью проиллюстрировать использование фиксирующих катушек «установки» и «сброса» в программировании лестничных диаграмм ПЛК. Катушки «Установка» и «Сброс» (называемые катушками «Фиксация» и «Разблокировка») являются примерами того, что известно в мире программирования ПЛК как сохраняемые инструкции. «Сохраняющая» инструкция сохраняет свое значение после того, как она фактически «обесточена» в «схеме» лестничной диаграммы. Стандартная выходная катушка не удерживается, что означает, что она не «фиксируется» при обесточивании. Концепция сохраняемых и несохраняемых инструкций появится снова, когда мы будем изучать программирование ПЛК, особенно в области таймеров. Обычно мы стараемся избегать использования нескольких катушек с одной и той же меткой в программе лестничной схемы ПЛК. Поскольку каждая катушка представляет команду «записи», несколько катушек с одинаковым именем представляют несколько операций «записи» в один и тот же бит в памяти ПЛК. Здесь, при использовании катушек с фиксацией, конфликта нет, поскольку каждая из катушек записывает данные в бит контактора OUT только тогда, когда соответствующий контакт находится под напряжением. Пока одновременно нажимается только один из кнопочных переключателей, конфликта между катушками с одинаковыми названиями не возникает. Возникает вопрос: что произойдет, если одновременно нажать оба кнопочных переключателя? Что произойдет, если на катушки «Установка» и «Сброс» одновременно будет подано напряжение? В результате бит контактора OUT сначала будет «установлен» (записан в значение 1), а затем «сброшен» (записан в значение 0) в том порядке, в котором две цепочки программы сканировались сверху вниз. . ПЛК обычно не обновляют свои регистры дискретного ввода-вывода во время сканирования программы лестничной диаграммы (эта операция происходит либо до, либо после каждого сканирования программы), поэтому реальное состояние канала дискретного вывода будет таким, каким оно было указано в последней операции записи. , в данном случае «сброс» (0 или выкл.). Даже если дискретный выход не «перепутан» из-за конфликтующих операций записи обмоток «Установка» и «Сброс», это могут быть и другие ступени программы, записанные между цепочками «Установка» и «Сброс». Рассмотрим, например, случай, когда после цепочек «Установить» и «Сброс» были другие цепочки программы, считывающие для какой-то цели состояние бита контактора ВЫХОДА. Эти другие цепочки действительно войдут в «замешательство», поскольку они увидят бит контактора OUT в состоянии «установлено», в то время как фактический дискретный выход ПЛК (и любые цепочки после цепочки «Сброс») увидят бит контактора OUT в состоянии «установлено». состояние «перезагрузки»: По этой причине несколько (несохраняемых) выходных катушек с одним и тем же адресом памяти почти всегда являются ошибкой программирования, но даже сохраняющие катушки, которые предназначены для использования в согласованных парах, могут вызвать проблемы, если не предвидятся последствия одновременного включения. Несколько контактов с одинаковыми адресами не представляют никакой проблемы, поскольку несколько операций «чтения» одного и того же бита памяти никогда не вызовут конфликта. Стандарт программирования ПЛК IEC 61131-3 определяет контакты, чувствительные к переходу, а также более привычные «статические» контакты. Контакт, чувствительный к переходу, будет «срабатывать» только на время одного сканирования программы, даже если соответствующий ему бит остается активным. В стандарте IEC определены два типа контактов лестничной схемы, чувствительных к переходу: один для положительных переходов, а другой для отрицательных переходов. В следующем примере показана схема подключения, программа лестничной диаграммы и временная диаграмма, показывающая, как каждый тип контакта, чувствительного к переходу, работает при стимулировании реальным (электрическим) входным сигналом на дискретный канал: When the pushbutton switch is pressed and the discrete input energized, the first test lamp will blink “on” for exactly one scan of the PLC’s program, then return to its off state. The positive transition contact (with the letter “P” inside) activates the coil OUT test1 only during the scan it sees the status of IN test transition from “false” to “true,” even though the input remains energized for many scans after that transition. Conversely, when the pushbutton switch is released and the discrete input de-energizes, the second test lamp will blink “on” for exactly one scan of the PLC’s program then return to its off state. The negative-transition contact (with the letter “N” inside) activates the coil OUT test2 only during the scan it sees the status of IN test transition from “true” to “false,” even though the input remains de-energized for many scans after that transition: It should be noted that the duration of a single PLC program scan is typically very short: measured in milliseconds. If this program were actually tested in a real PLC, you would probably not be able to see either test lamp light up, since each pulse is so short-lived. Transitional contacts are typically used any time it is desired to execute an instruction just one time following a “triggering” event, as opposed to executing that instruction over and over again so long as the event status is maintained “true.” Contacts and coils represent only the most basic of instructions in the Ladder Diagram PLC programming language. -
Логика отключения двигателя с использованием программирования ПЛК
leikang posted A plc and hmi russian article in PLC programming learning
Программируемый логический контроллер (ПЛК) Вопросы и ответы Этот ПЛК используется для запуска и остановки электродвигателя, а также для его автоматического выключения при возникновении любого из трех условий «выключения»: Чрезмерная вибрация Перегрузка по току (перегрузка контакта нагревателя) Высокая температура обмотки Логика отключения двигателя с использованием программирования ПЛК Статус каждого контакта отключения следующий: Вибрационный контакт: закрывается, когда все в порядке, размыкается, когда вибрация становится чрезмерной. Контакт перегрузки: закрывается в норме, размыкается при перегрузке Температурный контакт: размыкается, когда все в порядке, закрывается, когда жарко. Нарисуйте программу релейной логики ПЛК для запуска и остановки этого двигателя. Обязательно сделайте программу фиксируемой, чтобы оператору не приходилось удерживать кнопку «Пуск», чтобы двигатель работал. Отвечать: Находите ли вы ошибки в логике? Поделитесь с нами через комментарии. -
Существует множество ситуаций управления, требующих инициирования действий, когда в ПЛК реализуется определенная комбинация условий логических функций. Логические функции ПЛК Скажем, для автоматического сверлильного станка может быть условие, что двигатель сверла должен активироваться при активации концевых выключателей, которые указывают на наличие заготовки и положение сверла как находящееся на поверхности заготовки. Такая ситуация включает в себя логическую функцию И, причем условие A И условие B должны быть реализованы для того, чтобы произошел выходной сигнал. В этом разделе рассматриваются такие логические функции. ПЛК И ЛОГИКА На рисунке 1.7a показана ситуация, когда на выход не подается питание, пока два нормально разомкнутых переключателя не замкнуты. Переключатель A и переключатель B должны быть замкнуты, что, таким образом, дает логическую ситуацию «И». Мы можем думать об этом как о системе управления с двумя входами A и B (рис. 1.7b). Выход есть только тогда, когда A и B включены. Таким образом, если мы используем 1 для обозначения сигнала включения и 0 для обозначения сигнала выключения, то для того, чтобы на выходе была 1, мы должны, чтобы A и B оба были равны 1. Говорят, что такая операция контролируется логическим вентилем, а взаимосвязь между входами логического вентиля и выходами заносится в таблицу в форме, известной как таблица истинности. Таким образом, для вентиля И мы имеем: Примером логического элемента «И» является система блокировки управления станком, так что ею можно управлять только тогда, когда защитное ограждение находится на своем месте и включено питание. На рис. 1.8а показана система логических элементов И на лестничной диаграмме. Лестничная диаграмма начинается с j j, нормально разомкнутого набора контактов, обозначенного входом A, для обозначения переключателя A, и последовательно с ним j j, другого нормально разомкнутого набора контактов, обозначенного входом B, для обозначения переключателя B. Затем строка заканчивается буквой O, обозначающей вывод. Для того чтобы был выход, должны присутствовать как вход A, так и вход B, т. е. контакты входа A и входа B должны быть замкнуты (рис. 1.8б). В общем: На лестничной диаграмме контакты на горизонтальной ступени, то есть последовательные контакты, представляют собой логические операции И. ПЛК ИЛИ ЛОГИКА На рисунке 1.9а показана электрическая цепь, в которой на выход подается питание, когда переключатель A или B, оба нормально разомкнутые, замкнуты. Это описывает логический вентиль ИЛИ (рис. 1.9b), в котором вход A или вход B должен быть включен, чтобы был выход. Таблица истинности: На рисунке 1.10a показана система логических элементов ИЛИ на лестничной диаграмме, на рисунке 1.10b показан эквивалентный альтернативный способ построения той же схемы. Лестничная диаграмма начинается с j j, нормально разомкнутых контактов, обозначенных входом A, для обозначения переключателя A, и параллельно с ним j j, нормально разомкнутых контактов, обозначенных входом B, для обозначения переключателя B. Чтобы на выход подавалось напряжение, вход A или вход B должен быть закрыт. (рисунок 1.10в). Затем строка заканчивается буквой O, обозначающей вывод. В общем: Альтернативные пути, предоставляемые вертикальными путями из главной ступени лестничной диаграммы, т. е. параллельные пути представляют собой логические операции ИЛИ. Примером системы управления воротами операционной является конвейерная лента, транспортирующая продукты в бутылках к упаковке, где активируется дефлекторная пластина для отклонения бутылок в контейнер для отходов, если вес не находится в определенных пределах или на бутылке нет крышки. ПЛК НЕ ЛОГИЧЕСКИЙ На рис. 1.11а показана электрическая цепь, управляемая нормально замкнутым выключателем. Когда на переключатель подается вход, он размыкается, и ток в цепи отсутствует. Это иллюстрирует вентиль НЕ, в котором есть выход, когда нет входа, и нет выхода, когда есть вход (рис. 1.11c). Ворота иногда называют инвертором. Таблица истинности: На рисунке 11.11b показана система вентилей НЕ на лестничной диаграмме. Контакты входа А показаны как нормально замкнутые. Это последовательно с выходом ( ). При отсутствии входа на вход А контакты замкнуты, поэтому есть выход. Когда есть вход на вход А, он открывается, и тогда выхода нет. Примером системы управления воротами НЕ является свет, который включается, когда становится темно, т. е. когда нет входа света на датчик освещенности, есть выход. ПЛК NAND LOGIC Предположим, что мы следуем за логическим элементом И с логическим элементом НЕ (рис. 1.12a). Следствием наличия вентиля НЕ является инвертирование всех выходов вентиля И. Альтернатива, дающая точно такие же результаты, — поместить вентиль НЕ на каждый вход, а затем выполнить ИЛИ (рис. 1.12б). Встречается та же самая таблица истинности, а именно: Оба входа A и B должны быть 0, чтобы на выходе была 1. Выход имеется, когда вход A и вход B не равны 1. Комбинация этих вентилей называется вентилем И-НЕ (рис. 1.13). Примером системы управления воротами NAND является сигнальная лампа, которая загорается, если на станке не был активирован предохранительный выключатель и не активирован концевой выключатель, сигнализирующий о наличии заготовки. ПЛК НОР ЛОГИК Предположим, что мы следуем за логическим элементом ИЛИ логическим элементом НЕ (рис. 1.14a). Следствием наличия логического элемента НЕ является инвертирование выходов логического элемента ИЛИ. Альтернативный вариант, который дает точно такие же результаты, состоит в том, чтобы поместить вентиль НЕ на каждый вход, а затем вентиль И для результирующих инвертированных входов (рис. 1.14b). Ниже представлена результирующая таблица истинности: Комбинация вентилей ИЛИ и НЕ называется вентилем ИЛИ. Выход существует, когда ни вход A, ни вход B не равен 1. На рис. 1.15 показана лестничная диаграмма системы NOR. Когда вход A и вход B не активированы, имеется выход 1. Когда X400 или X401 равны 1, выходной сигнал равен 0. Логика исключающего ИЛИ (XOR) ПЛК Логический элемент ИЛИ выдает выходной сигнал, когда один или оба входа равны 1. Однако иногда возникает необходимость в вентиле, который выдает выход, когда любой из входов равен 1, но не когда оба равны 1, т. е. имеет таблицу истинности: Такой вентиль называется исключающим ИЛИ или исключающим ИЛИ. Один из способов получения такого вентиля — использование вентилей НЕ, И и ИЛИ, как показано на рисунке 1.16. На рис. 1.17 показана лестничная диаграмма системы вентилей «исключающее ИЛИ». Когда вход A и вход B не активированы, выходной сигнал равен 0. Когда активирован только вход A, верхняя ветвь приводит к выходу, равному 1. Когда активируется только вход B, тогда нижняя ветвь приводит к выходу, равному 1. Когда оба входа A и вход B активированы, выходной сигнал отсутствует. В этом примере логического элемента вход A и вход B имеют два набора контактов в цепях, один из которых нормально разомкнут, а другой нормально закрыт. При программировании ПЛК каждый вход может иметь столько наборов контактов, сколько необходимо. ПЛК Эксклюзивная логика NOR (XNOR)
-
Каждый программируемый логический контроллер должен иметь средства приема и интерпретации сигналов от реальных датчиков, таких как переключатели и энкодеры, а также иметь возможность осуществлять контроль над реальными элементами управления, такими как соленоиды, клапаны и двигатели. Это обычно известно как возможность ввода/вывода или ввода/вывода. Монолитные («кирпичики») ПЛК имеют фиксированное количество возможностей ввода-вывода, встроенных в устройство, тогда как модульные («стоечные») ПЛК используют отдельные «карты» печатной платы для обеспечения настраиваемых возможностей ввода-вывода. Модули ввода-вывода ПЛК Преимущества использования сменных карт ввода-вывода вместо монолитной конструкции ПЛК многочисленны. Во-первых и наиболее очевидным является тот факт, что отдельные карты ввода-вывода можно легко заменить в случае неисправности без необходимости замены всего ПЛК. Для пользовательских приложений можно выбрать конкретные карты ввода-вывода, отдавая предпочтение дискретным картам для приложений, использующих множество входов и выходов включения/выключения, или отдавая предпочтение аналоговым картам для приложений, использующих множество сигналов 4–20 мА и аналогичных сигналов. Некоторые ПЛК даже предлагают функцию горячей замены карт, что означает, что каждую карту можно извлечь и вставить новую без отключения питания процессора ПЛК и стойки. Обратите внимание, что не следует предполагать, что какая-либо система имеет карты с возможностью горячей замены, поскольку если вы попытаетесь заменить карту «вживую» в системе без этой функции, вы рискуете повредить карту и/или остальную часть устройства. он подключен! Некоторые ПЛК имеют возможность подключения к удаленным стойкам без процессора, заполненным дополнительными картами или модулями ввода-вывода, что позволяет увеличить количество каналов ввода-вывода сверх возможностей базового блока. Соединение главного ПЛК с удаленными стойками ввода-вывода обычно принимает форму специальной цифровой сети, которая может охватывать большие физические расстояния: Альтернативной схемой расширения системы является объединение нескольких ПЛК в сеть, где каждый ПЛК имеет собственную выделенную стойку и процессор. С помощью инструкций связи один ПЛК можно запрограммировать на чтение данных из другого ПЛК и/или запись данных в него, эффективно используя другой ПЛК в качестве расширения своего собственного ввода-вывода. Хотя этот метод дороже, чем удаленный ввод-вывод (когда в удаленных стойках отсутствуют собственные выделенные процессоры), он обеспечивает возможность автономного управления в случае разрыва сетевого соединения между процессорами ПЛК. Возможности ввода/вывода программируемых логических контроллеров бывают трех основных разновидностей: дискретные, аналоговые и сетевые.