

caixiaofeng
Staff group-
Content Count
147 -
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 caixiaofeng
-
Beginner control multi-motor PLC programming example
caixiaofeng posted A plc and hmi english article in PLC programming learning
PLC Programming Example on multi-motor control for beginners using Schneider Electric EcoStruxure Machine Expert Basic PLC software. Please note, that 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 designed with more safety and protection features. PLC Programming Example on Multi-Motor Design a PLC ladder logic for the following application. We are using three toggle switches to control three motors. If Switch 1 is ON, then Motor I, Motor II, and Motor III will be ON. If Switch 2 is ON, then Motor I and Motor II will be ON. If Switch 3 is ON, then Motor I, Motor II, and Motor III will be Off. Digital Inputs The following digital inputs (DI) are required in this example program. The assigned PLC DI addresses are also mentioned. Switch 1: I0.0 Switch 2: I0.1 Switch 3: I0.2 Digital Outputs The following digital outputs (DO) are required in this example program. The assigned PLC DO addresses are also mentioned. Motor 1: Q0.0 Motor 2: Q0.1 Motor 3: Q0.2 Ladder Diagram for Multi-Motor Control 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 Contact for Switch 1 (I0.0), Normally Closed Contacts for Switch 2 (I0.1) and Switch 3 (I0.2) Switch 1 and switch 3 are connected in series for Motor 1 and Motor 2, thus implementing AND logic gate. For Motor 3, switch 1, switch 2 and switch 3 are connected in series, thus implementing AND logic gate. For Motor 1 and Motor 2 to be ON, switch 1 should be ON and switch 3 should be OFF. When switch 1 is ON, switch 2 and switch 3 are OFF, Motor 3 will be ON. Turning ON Switch 3 will turn OFF all the Motors i.e., Motor 1, Motor 2 and Motor 3 will be OFF. Motor 3 will turn OFF, when Switch 2 is turned ON. When switch 1 is turned ON, all the motors will turn ON because the current will also pass through switch 2 and switch 3 as these are Normally Closed Contacts. Without turning OFF switch 1, motor 1 and motor 2 will still remain ON but motor 3 will turn OFF, when switch 2 is turned ON. On turning Switch 2 ON, it will not pass current to motor 3. All the motors will turn OFF when switch 3 is turned ON, even if other switches are ON. When Switch 1 is ON The current flows through switch 1 as it is in true state. In false state, switch 3 and switch 4 also pass current to the outputs. When Switch 2 is ON The current does not flow through switch 2 when it is turned ON. In true state Normally Closed contact breaks the circuit. When Switch 3 is ON Switch 3 is a Normally closed contact. When turned On, it will not allow current to pass through it. As a result, none of the output will be ON. -
Control parking lot entry and exit PLC program
caixiaofeng posted A plc and hmi english article in PLC programming learning
This is a PLC Program for Entry/Exit control of the basement or underground car parking. PLC Car Parking Problem Description Due to crowded area we face lots of problems of vehicle parking at basement or underground at shopping mall, hotels, complex etc.This is happening due to contradiction between the rapidly growing number of vehicles and limited parking spaces in malls, shop and complex in cities results in the phenomenon of “difficult parking and disorderly parking”.Current parking problem has serious impacts on people’s quality of life and the running of roads. Problem Diagram Problem Solution By simple automation we can reduce the car parking problem at basement or underground in shopping mall, hotels, complex etc. The Entry/Exit at basement is a single lane passage and it needs traffic lights to control cars.Here we consider two lights indication for cars control. Red lights prohibit cars entering or leaving while green lights allow cars entering and leaving.When car enters at the passage from the entry of the ground floor, both red lights (ground floor and basement) will be ON.Other car entering and leaving is prohibited during the process till the car passes through the single passage.When passage is clear both green lights (ground floor and basement) will be ON and allow other cars entering from the ground floor or basement. Initially we will keep green lights ON and red light OFF List of Inputs and Outputs Inputs List Main SWITCH : I0.0 Sensor S1 for ground floor Entry/Exit : I0.1 Sensor S2 for basement Entry/Exit : I0.2 Outputs List Green light (Entry/Exit ground floor) : Q0.0 Green light (Entry/Exit basement) : Q0.1 Red light (Entry/Exit ground floor) : Q0.2 Red light (Entry/Exit basement) : Q0.3 M memory coil List M10.0 : Will be ON when car passes sensor S1 M10.3 : Will be ON when car Passes sensor S2 M0.0 : Positive edge of system ON M0.1 & M11.0 : Positive edge of sensor S1 M0.3 & M11.1 : Positive edge of sensor S2 M11.2 : Negative edge of sensor S2 M11.3 : Negative edge of sensor S1 PLC Ladder Diagram for Entry/Exit control of car parking Program Description In this application we have used Siemens S7-300 PLC and TIA Portal Software for programming. Network 1: As per above explanation in first network when system is ON (I0.0), initially both green lights (ground floor (Q0.0) and basement (Q0.1)) will be ON. SET instruction is executed and it will set both output Q0.0 and Q0.1. Network 2: As per above explanation in second network when system is ON (I0.0), initially both red lights (ground floor (Q0.2) and basement (Q0.3)) will be OFF.)RESET instruction is executed and it will reset both output Q0.2 and Q0.3. Network 3: When car enters in the empty passage from the ground floor, sensor S1 (I0.1) will be triggered and with this trigger, memory coil M10.0 will be SET. Network 4: When car enters in the empty passage from the basement, sensor S2 (I0.2) will be triggered and with this trigger, memory coil M10.3 will be SET. Network 5: Both red lights will be set by either positive trigger of sensor S1 or sensor S2.Because when car enters in empty passage then both red lights (Q0.2 & Q0.3) will prohibit car entry/exit from both side. Network 6: Here we have taken negative trigger of both sensor S1 (I0.1) and S2 (I0.2). so when they triggered red lights (Q0.2 & Q0.3) will be OFF.When car completely passes empty passage then red lights (Q0.2 & Q0.3) should be OFF. Network 7: In this network green lights (Q0.0 & Q0.1) will be ON when red lights are OFF.Green lights (Q0.0 & Q0.1) allow other car for entry or exit. Network 8: If red lights (Q0.2 & Q0.3) are ON at that time green lights (Q0.0 & Q0.1) should be OFF.So in this network when red lights (Q0.2 & Q0.3) ON at that time reset instruction will be executed and green lights (Q0.0 & Q0.1) will be OFF Network 9: If system ON (I0.0) SWITCH is OFF then all memories should be 0.Here we have taken MOVE instruction for moving zero in all memories (MB0, QB0, and MB10). This Example is for concept explanation only, not all parameters are considered in this example (such as door open/close system, alarms etc.) Result Note : The above PLC Logic provided for basic idea about application of PLC in Car Parking Control of Entry/Exit Gates. The Logic is limited and not complete application. -
PLC Program for Counting Moving Objects on Conveyor
caixiaofeng posted A plc and hmi english article in PLC programming learning
This is a PLC Program to implement a program for counting objects on the moving conveyor. Counting Moving Objects on Conveyor Objects are moving on the conveyor. We need to count the total number of objects collected at the end of conveyor and display it on the local control panel. Write a PLC program for this application. Problem Diagram Problem Solution Here we use PLC ladder program to implement this logic. Mostly proximity sensors are used to detect the objects. Here we mount proximity sensor to detect the parts or objects moving on the conveyor. Inductive sensor are mostly used to detect metal objects. For other type of objects, we use Capacitive proximity sensor for detecting the objects moving on the conveyor. We connect this sensor to the PLC and by using counter logic,we will count the number of objects and display the total number on the local control panel display. Here we use UP counter for counting the collected Objects at the end of conveyor. Note:- Here we considered simple application for counting objects. We considered proximity sensor for detecting the objects. Proximity sensor will sense the object and PLC UP counter will count the collected objects. List of Inputs and Outputs Digital Inputs Start :- I0.0 Stop :- I0.1 Proximity :- I0.2 (Objects detection) Counter Reset PB :- I0.3 Digital Output Cycle ON :- Q0.0 M memory Counter Reset :- M0.1 Total Objects collected :- MW10 PLC Ladder Logic for counting Objects on the conveyor Ladder Logic Explanation For this application, we use S7-300 PLC and TIA portal software for programming. We can implement this logic by using other PLC also. Network 1: In first network we used latching circuit for cycle ON. Here we used START PB (I0.0 ) to start the cycle and STOP PB (I0.1) to stop the cycle. Network 2: PLC Counter instruction is used to count the number of objects. Proximity sensors are mounted near to the conveyor. When an object comes near to the proximity sensor (I0.2), it will detect the object and output of the sensor becomes energize or changes to ON state. When there will be no object near to the proximity sensor then output of sensor becomes de-energize or changes to OFF state. PLC counter counts in the incremental way. Total counted Objects number will be stored in the memory word or register (MW10). 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. This is the simple concept of UP counter. By using this concept we can count objects moving on the conveyor or any other counting application. This logic is only part or for specific application logic only. All parameters considered in example are for explanation purpose only, parameters may be different in actual applications. Result -
There are many control situations requiring actions to be initiated when a certain combination of logic functions conditions is realized in a PLC. PLC Logic Functions Say, for an automatic drilling machine, there might be the condition that the drill motor is to be activated when the limit switches are activated that indicate the presence of the workpiece and the drill position as being at the surface of the workpiece. Such a situation involves the AND logic function, condition A AND condition B having both to be realized for an output to occur. This section is a consideration of such logic functions. PLC AND LOGIC Figure 1.7a shows a situation where an output is not energized unless two, normally open, switches are both closed. Switch A and switch B have both to be closed, which thus gives an AND logic situation. We can think of this as representing a control system with two inputs A and B (Figure 1.7b). Only when A and B are both on is there an output. Thus if we use 1 to indicate an on signal and 0 to represent an off signal, then for there to be a 1 output we must have A and B both 1. Such an operation is said to be controlled by a logic gate and the relationship between the inputs to a logic gate and the outputs is tabulated in a form known as a truth table. Thus for the AND gate we have: An example of an AND gate is an interlock control system for a machine tool so that it can only be operated when the safety guard is in position and the power switched on. Figure 1.8a shows an AND gate system on a ladder diagram. The ladder diagram starts with j j, a normally open set of contacts labeled input A, to represent switch A and in series with it j j, another normally open set of contacts labeled input B, to represent switch B. The line then terminates with O to represent the output. For there to be an output, both input A and input B have to occur, i.e., input A and input B contacts have to be closed (Figure 1.8b). In general: On a ladder diagram contacts in a horizontal rung, i.e., contacts in series, represent the logical AND operations. PLC OR LOGIC Figure 1.9a shows an electrical circuit where an output is energized when switch A or B, both normally open, are closed. This describes an OR logic gate (Figure 1.9b) in that input A or input B must be on for there to be an output. The truth table is: Figure 1.10a shows an OR logic gate system on a ladder diagram, Figure 1.10b showing an equivalent alternative way of drawing the same diagram. The ladder diagram starts with j j, normally open contacts labeled input A, to represent switch A and in parallel with it j j, normally open contacts labeled input B, to represent switch B. Either input A or input B have to be closed for the output to be energized (Figure 1.10c). The line then terminates with O to represent the output. In general: Alternative paths provided by vertical paths from the main rung of a ladder diagram, i.e., paths in parallel represent logical OR operations. An example of an OR gate control system is a conveyor belt transporting bottled products to packaging where a deflector plate is activated to deflect bottles into a reject bin if either the weight is not within certain tolerances or there is no cap on the bottle. PLC NOT LOGIC Figure 1.11a shows an electrical circuit controlled by a switch that is normally closed. When there is an input to the switch, it opens and there is then no current in the circuit. This illustrates a NOT gate in that there is an output when there is no input and no output when there is an input (Figure 1.11c). The gate is sometimes referred to as an inverter. The truth table is: Figure 11.11b shows a NOT gate system on a ladder diagram. The input A contacts are shown as being normally closed. This is in series with the output ( ). With no input to input A, the contacts are closed and so there is an output. When there is an input to input A, it opens and there is then no output. An example of a NOT gate control system is a light that comes on when it becomes dark, i.e., when there is no light input to the light sensor there is an output. PLC NAND LOGIC Suppose we follow an AND gate with a NOT gate (Figure 1.12a). The consequence of having the NOT gate is to invert all the outputs from the AND gate. An alternative, which gives exactly the same results, is to put a NOT gate on each input and then follow that with OR (Figure 1.12b). The same truth table occurs, namely: Both the inputs A and B have to be 0 for there to be a 1 output. There is an output when input A and input B are not 1. The combination of these gates is termed a NAND gate (Figure 1.13). An example of a NAND gate control system is a warning light that comes on if, with a machine tool, the safety guard switch has not been activated and the limit switch signaling the presence of the workpiece has not been activated. PLC NOR LOGIC Suppose we follow an OR gate by a NOT gate (Figure 1.14a). The consequence of having the NOT gate is to invert the outputs of the OR gate. An alternative, which gives exactly the same results, is to put a NOT gate on each input and then an AND gate for the resulting inverted inputs (Figure 1.14b). The following is the resulting truth table: The combination of OR and NOT gates is termed a NOR gate. There is an output when neither input A or input B is 1. Figure 1.15 shows a ladder diagram of a NOR system. When input A and input B are both not activated, there is a 1 output. When either X400 or X401 are 1 there is a 0 output. PLC Exclusive OR (XOR) LOGIC The OR gate gives an output when either or both of the inputs are 1. Sometimes there is, however, a need for a gate that gives an output when either of the inputs is 1 but not when both are 1, i.e., has the truth table: Such a gate is called an Exclusive OR or XOR gate. One way of obtaining such a gate is by using NOT, AND and OR gates as shown in Figure 1.16. Figure 1.17 shows a ladder diagram for an XOR gate system. When input A and input B are not activated then there is 0 output. When just input A is activated, then the upper branch results in the output being 1. When just input B is activated, then the lower branch results in the output being 1. When both input A and input B are activated, there is no output. In this example of a logic gate, input A and input B have two sets of contacts in the circuits, one set being normally open and the other normally closed. With PLC programming, each input may have as many sets of contacts as necessary. PLC Exclusive NOR (XNOR) LOGIC
-
PLC Input Output Modules
caixiaofeng posted A plc and hmi english article in PLC programming learning
Every programmable logic controller must have some means of receiving and interpreting signals from real-world sensors such as switches, and encoders, and also be able to effect control over real-world control elements such as solenoids, valves, and motors. This is generally known as input/output, or I/O, capability. Monolithic (“brick”) PLCs have a fixed amount of I/O capability built into the unit, while modular (“rack”) PLCs use individual circuit board “cards” to provide customized I/O capability. PLC Input Output Modules The advantages of using replaceable I/O cards instead of a monolithic PLC design are numerous. First, and most obvious, is the fact that individual I/O cards may be easily replaced in the event of failure without having to replace the entire PLC. Specific I/O cards may be chosen for custom applications, biasing toward discrete cards for applications using many on/off inputs and outputs, or biasing toward analog cards for applications using many 4-20 mA and similar signals. Some PLCs even offer the feature of hot-swappable cards, meaning each card may be removed and a new one inserted without de-energizing power to the PLC processor and rack. Please note that one should not assume any system has hot-swappable cards, because if you attempt to change out a card “live” in a system without this feature, you run the risk of damaging the card and/or the rest of the unit it is plugged in to! Some PLCs have the ability to connect to processor-less remote racks filled with additional I/O cards or modules, thus providing a way to increase the number of I/O channels beyond the capacity of the base unit. The connection from host PLC to remote I/O racks usually takes the form of a special digital network, which may span a great physical distance: An alternative scheme for system expansion is to network multiple PLCs together, where each PLC has its own dedicated rack and processor. Through the use of communication instructions, one PLC may be programmed to read data from and/or write data to another PLC, effectively using the other PLC as an extension of its own I/O. Although this method is more expensive than remote I/O (where the remote racks lack their own dedicated processors), it provides the capability of stand-alone control in the event the network connection between PLC processors becomes severed. Input/output capability for programmable logic controllers comes in three basic varieties: discrete, analog, and network. -
Motor Trip Logic using PLC Programming
caixiaofeng posted A plc and hmi english article in PLC programming learning
Programmable Logic Controller (PLC) Questions and Answers This PLC is being used to start and stop an electric motor, and also to shut it down automatically if any of three “shutdown” conditions occur: Excessive vibration Overcurrent (overload heater contact) High winding temperature Motor Trip Logic using PLC Programming The status of each shutdown contact is as follows: Vibration contact: closed when okay, opens when vibration becomes excessive Overload contact: closed when okay, opens when overloaded Temperature contact: open when okay, closes when hot Draw a PLC ladder-logic program to start and stop this motor. Be sure to make the program latching so that the operator does not have to hold the Start button to keep the motor running. Answer: Do you find any mistakes in the logic? Share with us through comments. -
How to use PLC with SQL Database?
caixiaofeng posted A plc and hmi english article in PLC programming learning
In today’s world of industrial automation, data is a very important part. Getting instant data from sources and using them for different purposes is as crucial as running a system. Everyone usually knows how to integrate SCADA with various database systems, like SQL servers. However many ignore the power of PLC in integrating with databases. They too can be used for this purpose. PLC with SQL Database If we use PLC, programmers can work with them in emergency situations like SCADA failure and get their work done by coding it appropriately. In this post, we will see how to use PLC with SQL database. For those who are not familiar with SQL server, it is a database management tool which stores a large amount of data in real time format sequentially, and queries are written in it either through some external source, like a PLC, for retrieving data. For storing data in it, logic is written in PLC which when executed stores data in SQL. This is a simple concept, which is explained further in the post more briefly for it’s advantages. Scheduler PLC Suppose you have a very large-scale system where the operator has to feed hundreds of time schedules for operating particular functions every day. Instead of using vast coding and variables in PLC for storing data entered in SCADA and operating it once the time arrives, just feed all the variable data to the SQL server through PLC every time a new recipe is created. The SQL will store real-time date and time of the values entered and will give operators option of choosing them according to date and time filtered. For example, the SQL has five entries from 1st Oct to 5th Oct for various types of schedules entered. The benefit is that the operator can choose any one required and then run the system. If SQL was not there, he would have to run only one option of either 1st Oct or any other date. Or else, he would have to utilize memory of SCADA or PLC, which is waste of data and coding. This same thing becomes easier through SQL server. Another advantage is that SCADA code size becomes reduced and it would be used for other purposes. Scheduling is used in many applications and using PLC for it along with SQL makes system more efficient. Sequencing Consider a plant having 10 sequences. Every sequence has a barcode reader in it for starting the action on the required product. If the barcode is read in SCADA, then the corresponding data feed to PLC or in short, SCADA is the medial intervene for initiating communication between PLC and data; then just directly connect PLC with SQL. SQL will directly communicate with PLC for determining barcodes and other data for starting or stopping a sequence. Such bulk data from plant sequences helps reduce coding in SCADA and makes system faster to operate. Because PLC is written with coding for sequence operation, why not directly connect it with SQL and use the system. Synchronize multiple PLCs There are many applications where one PLC in a location needs data from another PLC location for doing a work. In that case too, traditionally SCADA is used for integrating all the PLC’s and managing them. In that case, if PLCs are directly connected to the SQL server, data will be synchronized through the date and time of SQL; thus, eliminating problems of multiple RTC (real-time clock) synchronization of PLCs. Also, PLC will directly communicate with other PLC for asking any data or give any data through the SQL server. Any alarm or event in a PLC will also be communicated to other PLC and would help in tracking real-time records. Handshaking Handshaking is a process where one party is acknowledged by the other party that the job has been completed. Basically, it is a response required so that the party can start its other work. This method works well with PLC and SQL servers. The SQL server can directly communicate with PLC by sending event notifications in real time, or alarm notification data in real-time. This means, suppose that the job has taken 3 days to complete. Then the completion acknowledgment will be sent as a separate event to the PLC, and as it also has 3 days of data in it, the operator can view the whole process in SCADA reports easily. So, handshaking is an important reason for communicating PLC with SQL directly. PLC Database Basics Establish a connection between the PLC and the SQL database using middleware or a gateway that facilitates communication between industrial network protocols and database languages. Select a communication protocol that both the PLC and the SQL database can understand, such as OPC UA, Modbus TCP, or any other protocol supported by your PLC and middleware. Configure the PLC to send and receive data by setting up the necessary parameters, registers, or tags that will be read from or written to. This might involve programming the PLC using its respective software to ensure it’s ready for data exchange. Set up the SQL database by creating a new database or configuring an existing one to store data from the PLC. Define tables, columns, and data types that align with the data structure being sent from the PLC. Map each PLC data point to the corresponding field in the SQL database. Ensure that the data types are compatible and that the mapping makes logical sense for the application’s needs. Implement data transfer logic using scripts or database stored procedures. Determine how often data should be transferred, under what conditions, and whether the transfer should be triggered by events or on a schedule. Test the communication between the PLC and the SQL database thoroughly. Check for any errors or data mismatches and ensure that the system behaves as expected under various conditions. Continuously monitor the system for operational integrity, data accuracy, and any anomalies. Set up alerts or notifications for system errors or significant events. Regularly review and update the system as needed to accommodate changes in the PLC setup, database structure, or additional requirements. Keep documentation updated for any system changes. Ensure security measures are in place for both the PLC and the SQL database to protect against unauthorized access and data breaches. Consider implementing encryption, firewalls, and secure access protocols. -
西门子 西门子 PLC 固件版本是什么?
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在这篇文章中,我们将讨论当您开始对 PLC 进行编程时经常出现的一个主要问题,即固件版本的常见错误以及如何处理它们。 内容: PLC 的固件版本是多少? 为什么固件版本会引起问题? 如何知道硬件 PLC 的固件版本? 如何处理固件版本错误? 结论。 PLC 的固件版本是多少? PLC 或 PLC 模块(IO、通信模块等)的固件只是安装在 PLC 中的内部软件,负责硬件的实际功能。 固件版本将决定您的 PLC 具有哪些内部功能,例如安全协议、内部优化功能、更好的时间处理以及其他不同的特性和功能。 具有旧固件版本的 PLC 将比新固件版本的 PLC 具有更少的功能和内部功能。 图 1 和图 2 向您展示了相同的硬件 PLC 在安装不同固件版本时如何具有不同的功能和性能。 图 1 – 固件版本 V4.0 图 2 – 固件版本 V4.4 您是否注意到,现在只需更新到更高的固件版本,同一 CPU 就可以添加更多功能?借助更高版本的固件 V4.4,CPU 现在在其性能能力中添加了 OPC UA 等功能。 为什么固件版本会引起问题? 看,您通常通过选择 PLC 来启动 PLC 项目,然后开始编程。 您将根据以下两点之一在 TIA Portal 中选择 PLC: 您已经购买了硬件 PLC,因此您将选择与 TIA Portal 项目中实际拥有的相同的 PLC。 您还没有购买 PLC,因此您将在 TIA Portal 中选择符合您要求的 PLC,然后再购买。 在这两种情况下,如果 TIA Portal 项目中选择的 PLC 固件版本与实际硬件的固件版本不同,则会出现问题。而且您的程序甚至不会下载到硬件 PLC 中。 因此,您应始终确保实际 PLC 的固件版本与 TIA Portal 中选择的 PLC 相匹配。 值得一提的是,如果 TIA Portal 中选择的固件版本比实际 PLC 旧,您的程序不会遇到任何问题,您将失去一些 PLC 特性和功能,但您的程序将正常工作 。 如果相反,就会出现问题,如果 TIA Portal 中选择的固件版本比实际 PLC 更新,那么就会出现问题。 因此,如果您不知道硬件的固件版本,则应在 TIA Portal 项目中选择旧版本。 如何知道硬件 PLC 的固件版本? 我们可以通过以下两种方法之一了解我们拥有的硬件 PLC 的固件版本: 从 PLC 本身 任何 PLC 模块的固件版本始终写入硬件设备上的某个位置。请参阅接下来的图片。 图 3 – 固件版本 FS:04 图 4 – 固件版本为 V7.0.5 从 TIA Portal 软件 使用 TIA Portal 软件,您可以将 PLC 连接到 TIA Portal 并搜索设备,然后您可以找到硬件设备的固件版本,请参阅以下步骤。 您甚至不必创建一个新项目;只需 TIA Portal 的项目视图就足够了,见图 5。 图 5 – 未创建项目的 TIA Portal 的项目视图。 通过在线访问搜索您的 PLC。由于 TIA Portal 和 PLC 之间是通过以太网电缆连接的,因此我们将使用以太网连接选项。双击更新可访问设备开始搜索您的 PLC。见图6。 图 6 – 更新可访问设备以搜索您的 PLC。 如果 PLC 和 TIA Portal 之间存在连接,则软件应找到您的 PLC。见图7。 图 7 – 软件已找到您的 PLC。 现在,双击在线和诊断以显示 PLC 的信息。见图8。 图 8 - PLC 在线信息。 从常规属性中,您可以找到 PLC 的固件版本,如上图所示。 您还可以从“功能”属性中找到固件版本。见图9。 图 9 – 功能属性中的固件版本。 如何处理固件版本错误? 首先,让我们创建一个固件版本错误场景,然后我们将了解如何处理和修复此错误。 我们将首先创建一个新项目,然后添加一个新设备,在此 PLC 示例中,我们将有意选择比实际硬件 PLC 更新的固件版本。我们知道我们的 plc 固件是 V4.0,但是在 TIA Portal 中我们将选择 V4.4 固件版本。见图10。 图 10 – 添加具有更高固件版本的新 PLC。 按“确定”添加您的设备,就这样,您已经创建了一个会导致固件错误的情况。为了看到这一点,让我们尝试将项目下载到我们的 PLC 中。 请注意,我们甚至还没有编写任何代码。只需下载到 PLC 即可。见图11。 图 11 – 下载到 PLC 失败,固件不兼容。 从上图可以看出,一旦尝试将项目下载到PLC,就会出现错误,指出 PLC 和 TIA Portal 的固件版本不匹配。 如果您尝试上网,甚至可以看到它。见图12。 图 12 – PLC 处于错误状态。 要解决此错误,我们只需将 TIA Portal 项目中选择的 PLC 的固件版本更改为旧版本或与实际硬件 PLC 相同的固件即可。 为此,我们转到 PLC 的属性页面,然后从常规属性中选择更改固件版本。见图13。 图 13 – 更改固件版本选项。 按下更改固件版本按钮后,将出现更改设备窗口;在此窗口中,您将能够更改固件版本。见图 14。 图 14 – 更改设备窗口。 在更改设备窗口中,您将看到您之前选择的当前设备以及您需要将其固件与您实际拥有的设备进行匹配的新设备。 请注意,当选择较低的固件(例如 V4.3)时,窗口底部的信息将向您显示在降级到较低固件时丢失的功能,如上图所示。 现在,将新设备的固件更改为 V4.0 版本的硬件 PLC。请注意,仅仅选择较低的固件,PLC 就失去了多少特性和功能。见图 15。 图 15 – 匹配硬件 PLC 和软件之间的固件。 按“确定”确认更改,然后尝试再次将项目下载到 PLC。您会注意到,现在项目将被加载到 PLC,没有任何错误。见图16。 图 16 – 项目被加载到 PLC 中。 将项目成功加载到 PLC 表明固件版本错误现已修复。您还可以在线查看 PLC 项目的在线视图。见图17。 图 17 – 该项目的在线视图。 您在上图中看到的绿色勾号和圆圈表示软件和硬件的所有配置都匹配并且彼此兼容。 结论 在 TIA Portal 中创建新项目时,固件版本错误是非常常见的问题。 最佳实践是了解您所拥有的硬件设备的固件版本,并将其固件与 TIA Portal 中选定的设备进行匹配。 如果您不知道硬件设备的固件,则应选择 TIA Portal 中所选模块的最旧版本。避免您的项目出现任何固件问题。 -
西门子 西门子 PLC 在 TIA Portal 中使用时钟存储器位
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在本文中,我们将介绍 TIA Portal 和西门子 PLC 中的时钟存储器位。我们将展示如何启用内存位的使用,以及它如何帮助您避免编码大量逻辑线以获得 PLC 内部已完成的简单功能。 内容: 什么是时钟存储器位? 需要时钟存储器位。 在我的项目中启用时钟内存。 简单的程序示例。 程序模拟。 结论。 什么是时钟存储器位? 时钟存储器是一种以 1:1 的比率周期性地改变其二进制状态的位存储器。这仅仅意味着它以预定义的频率定期在 true 和 false 之间更改其状态。 CPU 中预定义了 8 个时钟存储器位,这就是它们也称为时钟存储器字节的原因。 当您启用内存字节并分配时钟内存参数时,您可以决定 CPU 的哪个内存字节将成为时钟内存字节。 对时钟存储器位的需求 您不一定需要时钟存储器,因为您可以创建自己的逻辑并实现相同的功能。然而,当您需要此类功能时,将其放在口袋里是一件好事。因为为 8 个时钟存储器位创建 8 个独立的逻辑将花费您的一些时间和精力,并且可能会使您的程序变得不必要的大。 例如,您可以使用时钟存储器来激活闪烁的指示灯或启动定期重复的操作,例如记录实际值。 时钟位存储器字节的每一位都被分配一个频率。参见下表。 时钟存储器字节的位 7 6 5 4 3 2 1 0 周期(秒) 2.0 1.6 1.0 0.8 0.5 0.4 0.2 0.1 频率(赫兹) 0.5 0.625 1 1.25 2 2.5 5 10 表 1. 根据 TIA Portal 帮助手册的时钟存储器位频率。 在西门子 PLC 中启用时钟存储器 要在逻辑中使用时钟存储器位,您需要从 CPU 的属性中启用时钟存储器字节的使用。见图1。 图 1 – 启用时钟存储器字节 您可以选择要分配给时钟存储器的字节地址,只需确保它不与 PLC 逻辑中的任何其他存储器字节冲突即可。 从图中可以看出,我们选择了地址 0,因此如果您需要使用 2Hz 时钟位,您将使用位 %M0.3 Tia Portal 传送带示例程序 在上一篇文章中,我们使用了一个简单的示例,即传送带在传送带的起点和末端之间移动产品。当皮带运行时,LED 指示灯会亮起。见图2。 图 2 – 简单的传送带系统 我们将使用相同的示例,但这次我们将使用时钟内存位使 LED 更加直观。这次我们将使用带有 LED 的时钟存储器位来指示过程的不同情况。 流程说明 在由 PLC 控制的传送带系统中,传送带的两端有两个存在传感器来检测产品的存在,当在传送带的起始处检测到产品时,可以通过启动来启动传送带 按钮,当产品到达末端时,皮带将自动停止,并且不会再次运行,直到在开始时再次检测到新产品并按下“开始”按钮。 根据系统的当前情况,指示 LED 应该具有多种行为。 这些情况如下: 如果传送带起始处有产品,但尚未按下 START,则 LED 应以 0.5Hz 的频率闪烁。 如果传送带正在移动产品,LED 应以 2Hz 的频率闪烁。 当产品到达传送带末端时,LED 应亮起 当产品从末端取出时,LED 将熄灭。 项目 IO 我们有 4 个数字输入,如下所示: 启动:启动按钮以运行输送机。 停止:停止按钮可随时停止输送机。 P1:皮带起始处的存在传感器。 P2:皮带末端的存在传感器。 我们还有 2 个数字输出,如下所示: 电机:启动后,传送带将开始运行。 LED:将按照前面提到的顺序激活。 程序代码 首先,我们选择 PLC 并分配 IO 标签。见图3 图 3 – 分配输入和输出标签 不要忘记启用时钟存储器字节的使用,如图 1 所示。 我们将有两个代码网络,一个用于控制传送带,另一个用于 LED 逻辑。逻辑见图4和图5。 图 4 - 传送带的控制逻辑 图 5 - LED 的控制逻辑 正如您所看到的,使用时钟存储器位使逻辑变得简单且易于阅读。想象一下,如果您在不使用这些位的情况下创建相同的逻辑,您将使用大量计时器,并且您的逻辑将相当复杂。 程序模拟 我们之前解释过如何使用 PLCSim 来模拟我们的代码。在此示例中,我们将使用模拟序列来创建与实际过程相同的序列,并查看 LED 行为是否与预期功能匹配。 首先编译我们的代码并开始新的模拟。见图6。 图 6 – 程序模拟 如您所见,LED 现在已关闭;传送带的起点或终点没有产品。 我们创建了一个模拟序列,并观察 LED 对不同工艺条件的反应。请看下面的动画。 看看您是否能注意到 LED 行为如何随不同过程条件而变化。 结论 时钟存储器位以预定义的频率打开和关闭。 当您需要激活闪烁的指示灯或启动定期重复操作时,它们非常有用。 使用时钟存储器位可以节省您通过自己的逻辑获得相同功能所需的时间和精力。 -
什么是模拟输入?– PLC 中的模拟信号处理
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在本文中,我们将讨论 PLC 中的模拟输入信号处理以及如何在自动化过程中处理这些信号。 内容: 什么是模拟输入信号? S7-1200 和 1500 中的输入模拟量处理。 S7-300 和 400 中的输入模拟量处理。 哪些最适合控制?– 模拟或数字信号 结论。 什么是模拟输入信号? 在我们深入了解如何在 TIA Portal 中处理模拟输入信号之前,我们首先了解模拟输入。 任何自动化系统都需要输入信号来了解流程的状态,以便能够做出保持流程运行和稳定的决策。这些输入信号是离散或数字输入信号,其形式为 0 或 1 值。另一种类型的输入是模拟信号。 模拟信号只是系统中物理量的连续表示,因此如果您需要监控过程中的温度或压力,模拟信号将为您提供与物理量的实际变化相对应的连续和瞬时值。 模拟信号有多种标准形式,但最常见的是 0-10V 或 4-20mA。这取决于您使用的模拟传感器的类型,并且还决定您可以使用的 PLC 模拟模块的类型。 假设模拟压力传感器的测量范围为 0-10 bar,输出为 4-20mA。通常,模拟信号在被测量的物理量和相应的输出之间具有线性关系。 这意味着如果传感器测量 0 bar,它将给出 4mA 信号,如果传感器测量 10 bar,它将给出 20mA 信号,并且两者之间的信号也将是线性的。见图1。 图 1 – 模拟信号表示。 PLC 还是看不懂 4-20mA 的物理量,这就到了 PLC 模拟量模块的使用。模拟模块将对这种表示形式进行另一次转换,以便 PLC 能够真正理解它。 模拟模块会将模拟 mA 测量值转换为数字值,具体取决于模块的类型,但对于西门子 PLC,这些值始终在 0 – 27648 范围内。因此,如果传感器测量 0 bar,则输出将为 4mA,在PLC内部会转换为0值。见图2。 图 2 – 输入信号的模数转换 然后,PLC 将根据您的编程将 0-27648 值转换为等效的物理测量值,我们稍后将对此进行介绍。见图3。 图 3 – PLC 内部缩放后的测量值。 温度的模拟处理有很大不同,因为温度传感器的物理变化行为不像液位或压力传感器那样呈线性。这就是为什么不同类型的温度传感器有标准化表格来告诉哪个温度对应于哪个传感器值。 这就是为什么在进行温度测量时,您会选择 PLC 的特殊类型的输入模块,其中这些标准表是内部定义的,您可以直接获得与传感器测量相对应的温度值。 这就是为什么您找不到上面写有电压或电流测量范围的温度传感器。您只会找到所写的传感器类型,例如 PT100、PT1000、KTY84、PTC 等。 S7-1200 和 1500 中的模拟输入处理 为了了解如何在现代 S7 系列 PLC 中处理模拟信号,我们首先创建一个新项目并添加 S7-1200 CPU。我们还将添加一个模拟输入/输出模块。见图4。 图 4 – 添加模拟输入模块。 现在,让我们定义我们的输入信号标签,我们假设一个压力传感器可以测量 0 到 10 bar 之间的压力,并给出 4 到 20mA 之间的相应信号。 我们将在输入模块的第一个标签中定义该输入信号。见图5。 图 5 – 定义输入信号标签。 正如我们之前所说,输入模块可以处理不同的输入信号,无论是0-10V还是4-20mA,因此我们需要为我们的传感器分配正确的配置。 正如我们所说,压力信号以 4-20mA 的形式给出,因此我们将为此配置我们的输入通道。见图6。 图 6 – 配置输入通道 现在我们完成了硬件配置部分,我们将开始编写处理代码。为此,我们将创建一个函数 FC,以便每次有模拟信号需要处理时都可以重用它。在该 FC 内,我们将创建处理模拟信号并将其转换为物理测量值的逻辑。 在 TIA Portal 中,我们可以使用预定义的指令来执行此操作,这些指令是 NORM_X 和 SCALE_X 指令。见图7。 图 7 – NORM_X 和 SCALE_X 指令 如您所见,NORM_X 会将模拟输入标准化为 0 到 1 之间的值,然后 SCALE_X 将用于将此标准化值缩放到测量的物理值的范围,在我们的传感器情况下为 0 到 10 之间 酒吧。 我们使用函数 FC,而不是直接在主 OB1 中编写代码,以使我们的代码可与任何模拟信号重用。每次我有一个新的模拟输入信号时,我只需将 FC 块拖放到我们的主 OB1 中,然后写入所需输入的相关参数。见图8。 图 8 – 拖放您的 FC。 当您将 FC 拖放到主 OB1 中时,系统会要求您提供该函数调用的关联参数。 在我们的例子中,输入信号是压力传感器,ScaledMIN 和 ScaledMAX 是 0-10 bar 的测量值范围。见图9。 图 9 – 为我们的压力传感器分配功能参数。 如果我有一个新的模拟输入,那么我不必再次重新创建 PLC 逻辑,我只需将 FC 拖放到主 OB1 中并分配新的传感器参数即可。 假设我们现在有一个新的模拟传感器,用于测量水箱内水位的 0 % 到 100 % 之间。我们将执行与之前相同的步骤,从定义新的输入标签开始。见图10。 图 10 – 定义新的液位传感器 接下来,我们将像图 6 中那样配置液位传感器的输入通道。我们将假设相同的配置。 接下来,我们将拖放我们创建的 FC,并分配液位传感器的参数。见图11。 图 11 – 重新使用带有液位传感器的 FC。 正如您从上图中看到的,这是在逻辑中使用函数 FC 的众多优点之一,因为它有助于减少我们的编程量。 现在,您拥有了一个通用代码,可以与 PLC 项目中所需的任何输入模拟信号一起多次重复使用。 请参阅西门子 PLC 中输入信号处理的下一个仿真。 S7-300 和 S7-400 中的模拟输入 要了解如何在 S7-300 等较旧的 S7 系列 PLC 中处理模拟信号,我们首先创建一个新项目并添加 S7-300 CPU。 所选的 PLC 已经有足够的模拟量输入通道,所以我们不再添加任何模拟量模块。见图12。 图 12 – 添加 S7-300 PLC。 然后我们将定义新的模拟传感器标签,我们将假设压力传感器的测量范围在 0 到 100 bar 之间,输出为 4-20mA。 我们将像之前对 S7-1200 所做的那样配置 PLC 输入通道,以适应我们的模拟输入传感器。见图13。 图 13 – 配置输入通道。 现在到PLC编码部分,s7-300中用于处理模拟量处理的指令与 s7-1200不同。 在S7-1200 PLC中,我们必须使用NORM_X和SCALE_X。但对于S7-300,我们没有标准化指令,仅使用SCALE指令。见图 14。 图 14 – S7-300 中的 SCALE 指令 从上图可以看出,S7-300 中的 SCALE 指令有点类似于 NORM_X 和 SCALE_X 指令组合在一起。还有一个更明显的区别是双极性输入。 BIPOLAR 输入用于指示 IN 参数的值是否被解释为双极或单极。该参数可以采用以下值: BIPOLAR = 1,则假定输入整数值介于 -27648 和 +27648 之间。例如,当模拟传感器给我们提供 -10V 至 +10V 范围内的输出时 BIPOLAR =0 则假设输入整数值介于 0 到 27648 之间。例如,当传感器给我们提供 0-10V 范围内的输出时 这就是在 S7-1200 和 S7-300 PLC 中处理模拟输入信号的简单方法。 哪些最适合控制? – 模拟或数字信号 看,这两个信号对于任何自动化系统都至关重要且有用,但如果可以的话,我个人更喜欢使用模拟信号,因为对过程物理量进行模拟信号测量将使我能够持续监控过程参数,这将使我能够更好地 跟踪和控制我的流程。 此外,对参数进行连续监控将使我能够为不同的信号值设置不同的控制逻辑,这将使您更容易获得用于控制过程的值范围以及用于过程偏离正常操作的警报和警告的另一个值范围 。 结论 模拟信号是系统中物理量的连续表示。 模拟输入通常提供 0-10V 或 4-20mA 范围。 模拟信号处理是指将模拟 4-20mA 信号转换成与真实物理量相对应的、PLC能够理解的一系列数值。 在现代 S7 系列 PLC(如 S7-1200)中,处理模拟信号是使用 NORM_X 和 SCALE_X 指令完成的。 在 S7-300 等较旧的 S7 系列 PLC 中,处理模拟信号是使用 SCALE 指令完成的,该指令基本上是 NORM_X 和 SCALE_X 指令之间的组合。 -
西门子 西门子如何从物理 PLC 进行程序备份?
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在本文中,我们将展示如何使用西门子 Tia Portal 软件将程序从物理 PLC 备份到您的计算机。 内容: 为什么需要备份? 如何从 PLC 进行备份? 关于从 PLC 备份的注意事项 结论 为什么需要备份? 想象一下,如果您在使用软件时不小心从 PC 中删除了软件。或者您可能需要对已运行 10 年的某些流程软件进行更新,并且您不再拥有软件代码。 与其从头开始重写整个代码,不如直接上传当前代码并对其进行更改,这样会更容易。 在本文中,我们将展示如何轻松地将 PLC 中包含的软件上传到您的 PC。 如何从 PLC 进行备份? 与使用 S7-300 或 S7-400 等旧控制器相比,使用新型西门子控制器 S7-1200 和 S7-1500 的 TIA Portal 在备份时具有更多优势,使用旧控制器时,您可以进行备份,但不会显示任何注释或寻址详细信息,软件可以正常工作,但难以阅读或理解。 使用较新的 PLC 控制器,您现在可以上传代码以及所有相关的寻址和注释,这将使阅读代码变得非常简单,并可以对其进行任何更新。 从 PLC 上传软件的步骤 创建一个新项目,但与我们通常所做的不同,我们不会添加新设备,而是按 “在线” 并选择 “将设备上传为新站”。见图 1。 图片 1 – 将设备上传为新站。 这将带您将设备上传到 PG/PC 窗口。参见图片 2。 图片 2 – 上传设备窗口。 您需要选择上一张图片中所示的 PG/PC 接口类型,然后按“开始搜索”。 搜索完成后,您将看到软件找到的所有设备。请注意,不必只查找 PLC;您还可以找到 HMI、IO 模块以及软件可以检测到的所有其他通信模块。参见图片 3。 图片 3 – 扫描完成并找到设备。 扫描完成后,您可以选择需要上传的 PLC,然后按“上传”。这将开始将软件从 PLC 上传到您的 TIA Portal。参见图片 4。 图片 4 – 从 PLC 上传完成。 从上一张图片中可以看到,保存在 PLC 上的完整项目将上传到您的 TIA Portal。甚至包括所有注释和地址。参见图片 5。 图片 5 – PLC 项目已上传 如您所见,整个 PLC 项目已从 PLC 上传到您的 PC。包括所有块、注释和项目配置。 关于从 PLC 备份的注意事项 如果您的 PC 和 PLC 具有不同的 IP 地址,TIA Portal 将要求您为 PC 分配一个与 PLC 寻址相匹配的新 IP,如果您允许,它甚至会自动执行此操作。 如果 PLC 上的项目受密码保护,则在上传步骤开始之前会要求您输入此密码,如果您无法提供正确的密码,则上传将无法启动。请确保您知道该密码(如果有)。 有时,TIA Portal 会找到您的 PLC,但由于各种原因无法上传项目,例如,PLC 上的项目是用与您当前使用的 TIA Portal 版本不同的版本编写的。无论哪种情况,都会向您显示上传失败的原因,一旦这些原因被清除,您就可以上传。 结论 您可以使用 TIA Portal 将 PLC 上的项目上传到您的 PC。 如果 PLC 是 s7-1200 或 s7-1500,则将上传项目以及所有相关寻址和注释。 如果有任何原因阻止 TIA Portal 上传项目,TIA Portal 会向您显示此原因,一旦您解决问题,您就可以上传。 -
PLC 定时器和计数器之间的区别
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
开发 PLC 逻辑时,您总是需要定时器和计数器。自动化过程中的任何循环如果没有使用定时器和计数器通常都是不完整的。您需要它们在一定时间后执行任务或将任务保持开启/关闭一段时间。其用途取决于要开发的应用程序。 并且,在深入研究 PLC 的高级指令之前,程序员必须首先了解这些基本块,以便正确实施它们并获得帮助以更轻松地学习高级块。 在本文中,我们将了解 PLC 编程中定时器和计数器之间的区别。 什么是定时器? 定时器是一种用于在一定延迟后打开或关闭输出的指令。例如,如果您想在 5 秒后打开一盏灯,则使用定时器执行此任务。 定时器将接受输入,当输入打开时,其计时将开始。5 秒后,定时器输出将打开,从而间接打开灯。我们正在谈论的是该类型的普通定时器。 定时器有两种类型——定时器关闭和脉冲定时器。简而言之,基本功能是相同的——在一定延迟后执行任务。 请参考上图以更正确理解。定时器有四个输入和输出——输入、设定值、当前值和输出。输入接受启动定时器的条件,设定值用于获取设定的定时器值,当前值显示当前运行的定时器值,输出用于打开或关闭与其连接的变量。 当 PLC 定时器获得输入时,如果设定值为 5 秒,则定时器从 1、2 和 3 开始,依此类推,直到 5。当 5 秒完成后,输出打开。当输入关闭时,定时器的当前值立即变为零。 无论定时器是否正在运行;如果输入关闭,则定时器不会启动,其输出和当前值将为零。这是 TON(定时器开启延迟)定时器的功能。 什么是计数器? 计数器是一种指令,用于在达到设定的计数后打开输出。计数可以递增或递减。 例如,如果您想在按下按钮五次后打开灯,则使用计数器执行此任务。计数器将接受输入,当输入打开时,其计数将递增为 1。 当输入关闭时,不会发生任何事情。当它再次收到输入时,计数将递增为 2。计数 5 过去后,计数器输出将打开,从而间接打开灯。我们谈论的是计数器向上类型。 计数器还有一种类型 - 计数器向下。简而言之,基本功能是相同的 - 在一定计数后执行任务。 请参阅上图以更正确理解。计数器有五个输入和输出 - 计数输入、复位输入、设置值、当前值和输出。计数输入接受计数条件,复位输入接受计数器复位条件,设定值用于获取设定的计数器值,当前值显示当前运行的计数器值,输出用于打开或关闭与其连接的变量。 当计数器获得计数输入时,如果设定值为 5,则计数器递增为 1,依此类推,直到 5;在计数输入中收到每个脉冲时(意味着计数输入必须打开和关闭 5 次)。完成 5 次计数后,输出打开。 现在,即使给出计数输入脉冲,计数器也会在 5 之后继续增加,输出也将保持打开状态。要再次将计数器状态恢复为零,您必须提供复位输入。给出此输入后,计数器当前值变为零,输出也会关闭。因此,它类似于锁存型功能。要解锁计数器,您必须重置它。这是 CTU(计数向上)计数器的功能。 定时器和计数器之间的区别 PLC 中的定时器和计数器之间的主要区别如下。 定时器需要连续输入才能打开变量,但计数器不需要连续输入。因此,定时器在连续条件下工作,而计数器在脉冲条件下工作。 如果移除定时器输入,则其输出将返回到零状态;但如果移除计数器输入,则计数器将保持其最后一个值。 定时器没有复位输入,而计数器需要复位输入才能将计数器恢复到其原始状态。 定时器的类型包括定时器开启、定时器关闭和定时器脉冲。计数器的类型包括计数器加法和计数器减法。 定时器设定值可以是秒、分钟或毫秒;但计数器设定值是固定整数。 -
PLC 普通计数器和快速计数器之间的区别
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
PLC 编程包含多种类型的指令和操作数,用于执行逻辑。最常用的指令之一是计数器。 计数器用于计数。许多应用都需要计数;例如,即使是像计算一分钟内通过的瓶子数量这样的小逻辑也需要计数器。如果这样一个小应用程序需要计数器,那么自动化技术中就会有许多更大的逻辑类型,这些逻辑使用计数器。因此,这些是 PLC 编程中使用的重要指令类型。 有两种类型的计数器可用 – 普通计数器和步进计数器。在这篇文章中,我们将了解普通计数器和快速计数器之间的区别。 什么是普通计数器? PLC 中没有正式术语称为普通计数器。它只是一个定义,用于显示两种基本类型的计数器 – 升压和降压。顾名思义,这些指令用于在输入脉冲时计数。 假设你有一个按钮,你想计算它被按下了多少次。如果你明白我们想要表达的意思,按下意味着只要按下它,它就会保持打开状态。一旦你把它拿开,它就会关闭。 这意味着它是一个脉冲型输入,计数器只理解这种类型的输入。如果输入持续保持打开状态,那么它就不会计数。只有当输入从打开状态变为关闭状态时,它才会计数,然后再次重复相同的序列。 请参阅上图以了解。CU(计数)输入用于在收到输入时增加计数器。由于它是一个触发器,因此当收到脉冲型输入时,计数会增加。PV 输入是设定值。只要没有达到设定的计数,计数器(Q)的输出就会保持关闭状态。当达到设定值时,输出就会打开。 现在,即使给出了计数输入,计数也会继续增加,输出也会保持打开状态。要关闭它,需要提供复位输入,该输入将复位计数器并使当前值归零。这是计数器的一般工作原理。 什么是快速计数器? 快速计数器与普通计数器相同,但唯一的区别是它计数非常快速的输入类型。假设您有一个接近传感器,它在 30 秒内打开或关闭 1000 次。这种快速输入在普通计数器中很难检测到,因为它的扫描时间较短。快速计数器将通过快速计数其输入处接收到的脉冲数来完成这项工作。 与普通计数器类似,其输出在达到设定值后打开,并且需要复位输入来复位计数器并关闭输出。快速计数器可以在 5 kHz 的频率下工作。 由于快速计数器功能块由特定的硬件中断管理,因此维持最大频率采样率可能会因您的特定应用程序和硬件配置而异。并非所有 PLC 输入都可以用作快速计数器;它只有一些专用的 PLC 输入用于分配快速计数功能。 如您所见,这两个计数器之间的唯一区别是运行速度,因为普通计数器不能接受任何快速类型的输入。 -
三菱 自动门操作 PLC 编程和仿真
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在此 PLC 程序中,使用 PLC 编程设计自动门操作,当检测到物体时打开或关闭门。这里的物体只是一辆汽车。 自动门操作 下面的模拟显示了自动门系统的操作。 输入和输出 类型 设备编号 设备名称 操作 输入 X0 下限 当门到达下限位时亮起。 输入 X1 上限 当门到达上限位时亮起。 输入 X2 门内传感器 当物体接近门时开启。 输入 X3 输出传感器 当物体离开门时亮起。 输入 YO 门上 当 YO 开启时向上移动。 输出 Y1 门下 当 Y1 为 ON 时,向下移动。 输出 Y6 光 Y6 ON 时亮灯。 输出 Y7 蜂鸣器 Y7 打开时发出声音(屏幕上的灯亮起)。 程序说明 当汽车接近入口时,门向上移动。入口传感器 X2 用于检测汽车是否在入口处。 汽车驶过后,门就会向下移动。出门传感器 X3 用于检测汽车通过门后是否存在。 当上限开关 (X1) 激活时,门的向上移动会停止。 同样,当下限开关 (X0) 接合时,门的向下移动也会停止。 只要检测到汽车在入口 (入口门传感器 X2) 和出口 (出口传感器 X3) 的范围内,门就会保持向上。 蜂鸣器 (Y7) 发出蜂鸣声作为门移动的信号。 当汽车在检测范围内时,在入口门传感器 (X2) 和出口传感器 (X3) 之间,灯 (Y6) 保持亮起。 门的移动状态通过控制面板上四个指示灯的亮起或熄灭来指示。 可以手动控制门。可以按下控制面板上的按钮来打开 (⬆门向上) 或关闭 (⬇门向下) 门。 PLC 编程 -
三菱 分拣和配送线 PLC 编程高级逻辑
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在此高级 PLC 逻辑中,检测不同尺寸的零件,并根据箱子尺寸对其进行分类,然后将其放置在托盘中。 零件不过是不同尺寸的箱子,例如小、中、大。机器人将不同尺寸的箱子随机放置在传送带上。然后系统检测箱子尺寸并移动到相应的传送带并将它们放置在相应的托盘中。 分拣和配送线 PLC 编程 以下模拟显示了分拣和配送线系统的操作。 输入和输出 类型 设备编号 设备名称 操作 输入 X0 起点(供应) 当检测到零件时亮起。 输入 X1 上 当检测到零件时亮起。 输入 X2 中间 当检测到零件时亮起。 输入 X3 降低 当在右端检测到部件时 ON。 输入 X4 传感器 当在右端检测到部件时 ON。 输入 X5 传感器 当 Y1 为 ON 时,传送带向前移动。 输入 X6 检测部分 当检测到零件位于推杆前面时,ON。 输入 X10 起点(卸载) 卸料机器人位于起始点时亮起。 输入 X11 工件在工作台上 当工件在工作台上时,该信号为 ON。 输入 X12 机器人操作完成 机器人动作结束时ON。 输出 Y1 输送机前进 当Y2为ON时,传送带向前移动。 输出 Y2 输送机前进 当 Y3 为 ON 时,向前移动。 输出 Y3 分拣翼 当 Y4 为 ON 时,传送带向前移动。 输出 Y4 输送机前进 当 Y5 为 ON 时,输送机向前移动。 输出 Y5 输送机前进 Y6 ON 时伸出,Y6 OFF 时缩回。推杆不能在行程中途停止。 输出 Y6 推进器 当 Y7 为 ON 时,机器人将零件移动到托盘。一个过程循环开始。 输出 Y7 卸载命令 当 Y7 为 ON 时,机器人将零件移至托盘。一个过程循环开始。 输出 Y10 红色的 Y10 ON 时亮灯。 输出 Y11 红色的 Y11 为 ON 时亮灯。 输出 Y12 黄色的 Y12 ON 时亮灯。 程序说明 启动控制面板上的按钮 PB1 (X20) 会触发供应命令 (Y0),从而使机器人开始移动物体。 一旦机器人完成移动零件并返回其原始位置的任务,供应命令 (Y0) 就会停用。激活供应命令 (Y0) 会推动机器人提供零件。 激活控制面板上的开关 SW1 (X24) 会促使传送带向前移动。相反,停用开关会导致传送带停止。 传送带上载有不同尺寸(即大、中、小)的零件,根据上部 (X1)、中部 (X2) 和下部 (X3) 传感器的输入进行分类,并传送到指定的托盘中。 当分离式输送机上的分拣翼 (Y3) 激活时,大型零件被引导至后部输送机,随后零件在输送机上运输并最终从右边缘下降。 当分离式输送机上的分拣翼 (Y3) 停用时,中型零件被引导至前部输送机,随后由机器人传送到托盘。 当分离式输送机上的分拣翼 (Y3) 激活时,小零件被路由到后部输送机。一旦分离式输送机中的检测零件传感器 (X6) 激活,输送机就会停止,零件会被推到托盘上。 当机器人检测到工作台 (X11) 上的零件时,卸载命令 (Y7) 就会激活。一旦机器人完成其操作,机器人操作完成 (X12) 状态将打开(当零件放置在托盘上时发生),卸载命令 (Y7) 就会停用。 只要控制面板上的 SW2 (X25) 开关保持激活状态,在以下情况下就会自动供应新零件: 当机器人开始运输中型零件时。 当托盘上添加小零件或大零件从传送带的右边缘下降时。 显示灯按以下方式闪烁: 红灯表示机器人正在供应零件。 绿灯表示传送带正在运动。 当传送带静止时,黄灯亮起。 PLC 程序 -
三菱 按高度对箱子进行分类和分配的 PLC 编程
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在此 PLC 编程中,我们使用传感器和传送带按高度对箱子进行分类和分配,并将其放入指定的存储箱中。 此 PLC 程序根据零件的大小分配指定数量的零件。 PLC 按高度对箱子进行分类 下面的模拟显示了 PLC 逻辑根据箱子高度对箱子进行分类的工作原理。这里有 3 种不同大小的箱子,如小号、中号和大号。 每种箱子尺寸都有三个存储箱。有三个推杆和三个传送带。每种箱子尺寸都有一个推杆和一个传送带。 机器人将箱子随机放置在传送带上。传感器用于检测箱子的尺寸。当相应尺寸的箱子到达那里时,使用传感器启动和停止传送带。 相应的推杆被激活并将相应尺寸的箱子移动到专用的存储箱中。 PLC I/O 列表 下表列出了该系统的输入和输出。 类型 设备编号 设备名称 操作 输入 X0 初始点 当机器人处于起始点时亮起。 输入 X1 上 当检测到零件时亮起。 输入 X2 中间 当检测到零件时亮起。 输入 X3 降低 当检测到零件时亮起。 输入 X4 传感器 当检测到零件处于倾斜状态时打开。 输入 X5 传感器 当检测到零件处于倾斜状态时打开。 输入 X6 传感器 当检测到零件处于倾斜状态时打开。 输入 X7 传感器 当在右端检测到部件时 ON。 输入 X10 检测部分 当检测到零件位于推杆前面时,ON。 输入 X11 检测部分 当检测到零件位于推杆前面时,ON。 输入 X12 检测部分 当检测到零件位于推杆前面时,ON。 输出 Y0 供给指令 当 Y0 为 ON 时,供应一份。一个加工循环开始: 木制零件按 M、S、L、M、M、L、S、S、L、L 的顺序重复。 输出 Y1 输送机前进 当 Y1 为 ON 时,传送带向前移动。 输出 Y2 输送机前进 当Y2为ON时,传送带向前移动。 输出 Y3 输送机前进 当 Y3 为 ON 时,传送带向前移动。 输出 Y4 输送机前进 当 Y4 为 ON 时,传送带向前移动。 输出 Y5 推杆 Y5 ON 时伸出,Y5 OFF 时缩回。推杆不能在行程中途停止。 输出 Y6 推杆 Y6 ON 时伸出,Y6 OFF 时缩回。推杆不能在行程中途停止。 输出 Y7 推杆 Y7 为 ON 时伸出,Y7 为 OFF 时缩回。推杆不能在行程中途停止。 程序描述 根据高度和组件分布对箱体进行分类,编写可编程逻辑控制器 (PLC)。 启动机器人的操作需要按下控制面板上的按钮 PB1 (X20),这将激活机器人供应命令 (Y0)。 当机器人完成零件移动并返回其初始位置时,机器人供应命令 (Y0) 将停用。传送带移动命令由控制面板上的开关 SW1 (X24) 控制。 激活开关(将其打开)可推动传送带向前移动,而停用开关(将其关闭)可使传送带停止。 通过上部 (X1)、中部 (X2) 和下部 (X3) 传感器的输入,对零件进行分类,分为大、中、小尺寸。分类后,零件被传送到指定的托盘中。 通过激活(打开)零件检测传感器(X10、X11 或 X12)可识别出推进器中零件的存在。 检测到零件后,传送带停止,检测到的零件被移到托盘上。 注意:推进器的操作由推进器启动命令控制。接收到 ON 信号后,推进器完全伸出,而 OFF 信号则导致推进器缩回。 每个托盘应包含特定数量的零件,具体取决于零件的大小。任何超过这些指定数量的零件都会绕过推进器并从右端的传送带中弹出。 每个尺寸的指定零件数量如下: 大:3 个零件 中:2 个零件 小:2 个零件 PLC 梯形逻辑 -
西门子 使用 I-Device 在西门子 PLC 之间进行通信
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
PLC 之间可以通过多种方式进行通信和对话,在本文中我们将讨论其中一种方法,即如何使用 i-device 功能在 PLC 之间建立西门子通信,以进行 PLC 到 PLC 的数据传输。 什么是智能设备功能? I-Device 功能可用于非常轻松地在两个 PLC 之间交换数据。 智能设备就是用作 IO 设备的 PLC。 这意味着 PLC 将充当 IO 模块,为其他 PLC 提供输入并接收输出。 智能设备功能使 PROFINET 不仅可以与 IO 控制器等下级设备进行通信,还可以作为 IO 设备与其他上级或中央控制器进行 IO 通信。 西门子 PLC 之间的通信 大多数 S7 系列 PLC 支持 I-Device 功能,但某些控制器不支持,具体取决于固件版本,例如: S7-300(固件版本 V3.2 及以上) S7-1200(固件版本 V4 及以上) 您可以通过进入 PLC PROFINET 接口属性并检查 “操作模式” 选项来简单地了解您的控制器是否具有智能设备功能。 见图 1a 和 1b。 图 1a. PLC 不支持智能设备 从图中我们看不到 “运行模式” 选项,因此我们知道 PLC 不支持智能设备功能。 图 1b. PLC 支持智能设备功能 从图中可以看出,该 PLC 支持智能设备功能。 具有 “智能 IO 设备” 配置的 PLC 称为智能设备。 I-Device 就像标准 IO 设备一样,需要像标准 IO 设备一样进行处理。 这意味着智能设备还连接到更高级别的 IO 控制器。 因此,智能设备将充当 IO 模块,但它仍然是 PLC,因此如果您愿意,它仍然充当控制器。 数据交换概念 I-Device 方法的指导原则是使用 CPU 中已知的过程映像。 从更高级别的 IO 控制器的角度来看,与智能设备的通信类似于与分布式 IO 的通信,在输入和输出处进行通常的读写过程。 从智能设备的角度来看,到更高级别 IO 控制器的数据传输也类似于通过输入和输出到本地或分配的分布式 IO 的数据传输。 智能设备配置选项 配置有两种可能性: 在项目中配置智能设备。 配置在另一个项目中使用的智能设备 为另一个项目组态智能设备时,STEP 7 允许您通过将已组态的智能设备导出到 GSD 文件中来完成此操作。 GSD 文件可以像其他 GSD 文件一样导入到其他项目或其他工程系统中。 这不仅可以实现项目内部的通信,还可以通过经过验证的方式实现跨项目的通信以及不同制造商之间的数据交换。 我们将在另一篇文章中展示这一点。 在本文中,我们将展示同一西门子 PLC 项目中智能设备的配置。 同一 PLC 项目中的智能设备配置 我们假设项目中有两个 PLC,CPU 1516-3 PN/DP 将充当此配置中的控制器,CPU 1214C 将充当智能设备。 首先将两个 PLC 添加到 TIA Portal 项目中,并在它们之间设置 Profinet 连接。 见图2。 图 2. 两台 PLC 之间建立连接。 现在,我们需要将 CPU 1214C PLC 配置为智能设备。 您可以通过转到 Profinet 接口属性并在操作模式选项中单击 IO 设备选项来完成此操作。 见图3。 图 3. 选择 IO 设备。 之后,您需要将智能设备分配给更高级别的控制器,即我们项目中的 CPU 1516-3 PN/DP PLC。 为此,只需从分配的 IO 控制器下拉列表中选择该 PLC。 见图4。 图 4. 将智能设备分配给控制器。 此后,智能设备现已连接并分配给控制器 PLC。 见图5。 图 5. 智能设备被分配给控制器 PLC。 下一步是在智能设备和控制器之间通过所谓的传输区域交换数据。 创建传输区域 传输区域是用于在智能设备和更高级别 IO 控制器之间交换数据的 IO 区域。 转到 “智能设备通信” 部分。 单击 “传输区域” 列的第一个字段。 TIA Portal 将创建一个您可以更改的预定义名称。 从图 6 可以看出。 图 6. 创建传输区域 选择通讯关系类型:目前只能选择 CD。 见图7。 图 7. 选择 CD 通讯选项。 选择 CD 选项后,将创建一个传输区域,并自动创建 IO 控制器和智能设备的地址。 见图 8。 图 8. 创建传输区域。 地址是自动预先分配的,如果需要,您可以根据您的环境调整地址并指定要传输的传输区域的长度一致。 要像以前一样创建另一个传输区域,只需按 “添加新” 即可,见图 9。 图 9.添加新的传输区域。 正如我们之前所说,数据交换基于简单的处理图像概念,这意味着您始终发送输出并接收输入。 另请注意,您在上图中看到的箭头表示智能设备和控制器之间的信息流。 因此,如果我将数据从控制器发送到智能设备,则箭头将从控制器到智能设备,并且将输出控制器的地址,并且将输入智能设备的地址,反之亦然,如您所见 上一张图片。 另请记住,最好将传输区域重命名为正确的指示名称。 见图 10。 图 10. 重命名您的传输区域。 加载 PLC 项目 要加载 PLC 项目数据,请在项目导航中依次选择两个控制器,并将项目加载到相应的模块中。 请注意,由于我们没有实际的硬件设备,因此无法模拟此功能。 -
西门子 西门子 PLC 中的 PUT 命令 – TIA Portal 基础知识
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在本文中,我们将讨论两个 PLC 之间通信的另一种方式,无论它们位于同一项目还是两个不同的 PLC 项目中。 在本文中,我们将讨论西门子 PLC 中的 PUT 命令,该命令可用于将数据从一个 PLC 发送或放入第二个 PLC。 什么是 PUT 命令? 一般来说,PUT 命令是 TIA Portal 内置功能块 FB,专门用于 S7 系列 CPU,用于将数据从本地 PLC 传送到远程伙伴 PLC。 使用 PUT 命令时,我将有两个 PLC,我需要将数据从一个称为本地的 PLC 发送到另一个称为伙伴的 PLC。 必须对伙伴 PLC 进行一些配置,以使其能够被其他 PLC 访问。 除了 PLC 之间的 Profinet 连接之外。 我们将创建一个示例项目来展示如何使用 PUT 命令。 西门子 PLC 中的 PUT 命令 我们将假设一个示例项目,其中同一项目中有两个 PLC,PLC_1 将充当本地 PLC,PLC_2 将充当合作伙伴 PLC。 我们想要将一个整数从本地写入伙伴 PLC。 PLC 项目示例 首先,我们创建一个新项目并添加两个 PLC。 见图1。 图1.添加本地和伙伴 PLC。 我现在需要的是配置 PLC_2,即接收数据的 PLC_2,以便能够接收该数据。 PLC_1 将与 PUT 命令一起使用。 我需要做的第一件事是允许 PUT 命令访问将接收数据的 PLC_2。 见图2。 图 2. 允许 PUT 命令访问。 如图所示,我们允许 PUT 命令从 PLC_2 的属性中访问 PLC_2,在保护和安全选项中,单击 “允许远程伙伴通过 PUT/GET 通信进行访问” 现在,我可以使用 PUT 命令将来自任何远程伙伴的数据放入 PLC_2。 第二件事是在 PLC_2 中为要放入其中的数据准备一个空间或内存。 我们假设我们想要将一个整数值放入该 PLC 中,因此我将根据该值准备一个内存。 见图3。 图3. 准备接收数据的区域。 就是这样; 这是您需要从 PLC_2 侧准备的完整配置,以便能够通过 PUT 命令接收数据。 接下来,我们设置从 PLC_1 发送的数据。 我们将创建一个数据块来保存发送到 PLC_2 的数据,在该数据块内,我们将定义一个要放入 PLC_2 的整数标签。 见图4。 图4. 创建数据块来保存发送的数据。 我们定义了一个要发送到 PLC_2 的整数标签 “SendMeToPLC_2”。 见图5。 图5.定义要发送的数据。 请注意,对于 PLC_1,我们不需要允许使用 PUT 命令选项进行访问。 我们在将接收数据的 PLC 中激活此功能,而不是在将发送数据的 PLC 中激活此功能。 现在,让我们在编程中使用 PUT 命令,在主 OB1 中我们将拖放 PUT 命令 FB。 见图6。 图6. 将PUT命令添加到OB1中。 需要注意的是,PUT命令是在S7通讯文件夹中找到的,因为它是S7系列PLC的专有功能,因为它涉及到安全问题。 请记住,在图 2 中,当我们允许使用 PUT 命令时,它位于 PLC 属性的安全和保护属性中,因为它与 PLC 安全和保护相关。 PUT 命令本质上是一个功能块,因此当将其添加到我的逻辑中时,我将被要求创建一个数据实例。 见图7。 图 7. 为 PUT 命令创建数据实例。 按“确定”后,PUT 命令现已添加到您的 PLC 逻辑中。 见图8。 图 8. PUT 命令 添加 PUT 命令后,现在我们需要对其进行配置,我们为 PUT 命令配置两个参数。 PLC 之间的连接 将从 PLC_1 PUT 到 PLC_2 的块 要转到 PUT 命令的配置视图,请按最后一张图片中显示的蓝色小图标。 在连接参数中,您将设置本地 (PLC_1) 和伙伴 (PLC_2) PLC 之间的通信。 见图9。 图9. 连接参数。 如您所见,本地 PLC 设置为 PLC_1,这是使用 PUT 命令的 PLC。 伙伴端仍然是空的,这就是我们应该分配 PLC_2 的地方。 如果您单击下拉列表,您将有两个合作伙伴选项。 见图10。 图10. 合作伙伴连接 伙伴是接收数据的 PLC; 您会发现有两个选项可供选择: PLC_2 [CPU 1516-3 PN/DP] 未指定 因为两个 PLC 都在同一个项目中,所以当我选择 PLC_2 选项时,所有连接参数都会自动填写。见图11。 图 11. PLC_2 作为伙伴 另一方面,如果合作伙伴PLC来自不同的项目,那么我将选择“未指定”选项,在这种情况下,我将必须填写一些数据,例如合作伙伴PLC的IP地址。 见图12。 图12. 未指定的合作伙伴 如您所见,在这种情况下,我需要填写一些数据,例如 IP 地址,还需要为 PLC_1 添加子网。 要为 PLC_1 添加子网,我们将转到 PLC_1 的 Profinet 属性并选择添加子网选项。 见图13。 图 13. 添加子网。 完成后,连接参数配置就完成了。 见图 14。 对于您发出的每个 PUT 命令,连接名称应该是唯一的,TIA Portal 将自动为其指定一个新名称,但您最好为项目中的连接分配一个更合适的名称。 我们这里保持原样。 图14.连接参数完成 PUT 命令配置的下一步是块参数设置。 在这些参数中,我们指定 PUT 命令的触发器,这意味着什么信号将启动 PUT 命令操作。 以及将从 PLC_1 放入哪些数据以及将其存储在 PLC_2 中的何处。 见图15。 图 15. 模块参数设置 对于开始请求 (REQ) 信号,我们定义了一个输入标签 (SendData %I0.0)。 正如我们之前提到的,我们已经定义了将发送到 PLC_2 的标签以及它将在 PLC 内存储的位置。 完成块参数配置后,PUT 命令的配置也就结束了。 见图16。 图 16. 调用 PUT 命令 所以,综上所述,当 REQ 信号被触发时,SD_1 中的数据将被发送到 ADDR_1。 -
西门子 GET 命令 – 西门子 PLC 到 PLC 通信项目
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在上一篇文章中,我们讨论了 PUT 命令以及如何使用它在同一项目或两个不同项目中的两个 PLC 之间进行通信。 在本文中,我们将讨论用于西门子 PLC 到 PLC 通信项目中用于数据交换的 GET 命令。 GET 命令是什么? 就像 put 命令一样,GET 命令是 TIA Portal 内置功能块 FB,专门用于 S7 系列 CPU,用于将数据从远程伙伴 PLC 获取到本地 PLC。 与 PUT 命令相反,GET 命令不是将数据从 PLC_1 放入 PLC_2,而是将数据从 PLC_2 获取到 PLC_1。 当使用 GET 命令时,我有两个 PLC,我需要从一个称为“伙伴”的 PLC 到另一个称为“本地”的 PLC 获取数据。 本地 PLC 是对 GET 命令进行编程的地方。 除了两个 PLC 之间的 Profinet 连接之外。 必须对伙伴 PLC 进行一些配置,以使其能够被其他 PLC 访问。 我们将创建一个示例项目来展示如何使用 GET 命令。 西门子 PLC 到 PLC 通信项目 我们将假设一个示例项目,其中同一项目中有两个 PLC,PLC_1 将充当本地 PLC,PLC_2 将充当合作伙伴 PLC。 为了创建需要使用 GET 命令的情况,我们假设我们想要从伙伴 PLC_2 读取/获取整数到本地 PLC_1。 首先,我们创建一个新项目并添加两个 PLC。 见图1。 图1.新建一个工程,添加两台PLC。 现在,我们需要配置伙伴 PLC_2 以启用来自 PLC_1 的 GET 访问。 我们还需要准备将从 PLC_2 移至 PLC_1 的数据。 首先,我们需要允许 GET 命令访问将提供数据的 PLC_2。 见图2。 图 2. 允许 GET 命令访问。 从图中可以看到,我们允许GET命令从PLC_2的属性中访问PLC_2,在保护和安全选项中,单击 “允许远程合作伙伴通过 PUT/GET 通信进行访问” 现在,我可以使用 GET 命令从伙伴 PLC_2 读取/获取数据。 接下来,我们要创建将移动到 PLC_1 的数据,我们假设 PLC_1 要从 PLC_2 获取整数。 我们将定义一个名为 “SendDataToPLC_1” 的整数标签,该整数标签将从 PLC_2 读取到 PLC_1。 见图3。 图3. 定义要移动到 PLC_1 的数据 就是这样; 这是您需要从 PLC_2 侧准备的完整配置,以便能够通过 GET 命令接收数据。 现在,我们转到 PLC_1,在 PLC_1 中,我们要创建使用 GET 命令从 PLC_2 读取数据的逻辑。 正如我们在上一篇文章中所做的那样,我们只需将 GET 命令拖放到主 OB1 中即可。 见图4。 图4.拖放GET命令 需要注意的是,GET命令位于S7通讯文件夹中,因为它是S7系列PLC的专有功能,因为它涉及到安全问题。 请记住,在图 2 中,当我们允许使用 GET 命令时,它位于 PLC 属性的安全和保护属性中,因为它与 PLC 安全和保护相关。 当您将 GET 命令拖放到您的系统中时,您将被要求创建一个数据块实例,因为 GET 命令本质上是一个功能块 FB。 见图5。 图 5. 为 GET 命令创建数据实例。 现在,我们将 GET 命令添加到逻辑中,我们需要开始配置 GET 块,就像之前使用 put 命令所做的那样。 要打开 GET 命令的配置视图,请按块顶部的蓝色小图标。 见图6。 图 6. 打开配置视图。 我们有两个主要参数需要配置,连接参数和块参数。 见图7。 图 7. GET 块配置。 从图中可以看到,Local PLC就是调用GET命令的PLC。 虽然合作伙伴 PLC 是提供数据的 PLC,但它也是我们允许 GET 访问的同一 PLC。 在我们的项目中,合作伙伴 PLC 是 PLC_2。 从图中还可以看到,伙伴是空的,我们必须选择 PLC。 见图8。 图8. 合作伙伴列表中的不同选项 正如您所看到的,我们为合作伙伴 PLC 有两种不同的选项可供选择。 未指定是指当 PLC 属于不同的 TIA Portal 项目时,如果 PLC 属于同一 TIA Portal 项目,则您将在列表中找到其他 PLC。 当您选择PLC_2选项时,因为我们的PLC在同一个项目中,连接配置将自动填写。见图9。 图 9. PLC_2 作为伙伴 因为两个PLC都在同一个项目中,所以当我选择PLC_2选项时,所有连接参数都会自动填写。 另一方面,如果合作伙伴PLC来自不同的项目,那么我将选择“未指定”选项,在这种情况下,我将必须填写一些数据,例如合作伙伴PLC IP地址。 见图10。 图 10. 未指定的合作伙伴 PLC。 如您所见,当伙伴为“Unspecified”时,您将需要手动添加一些信息,例如伙伴PLC IP地址。 还可以看到我们需要给本地PLC_1添加一个子网。 为此,您只需转到 PLC_1 的 Profinet 属性并选择添加新子网。 见图11。 图 11. 为 PLC_1 添加子网 在PLC_1中添加新的子网后,连接参数配置就完成了。 见图12。 图12.连接参数完成。 我们需要处理的下一个配置是块参数。 在块参数中,我们定义将在两个 PLC 之间移动的数据以及允许开始执行 GET 块的触发信号。 见图13。 图 13. 块参数。 如您所见,我们需要定义 GET 块的触发信号,还需要定义将从 PLC_2(读取区域 ADDR_1)移动哪些数据以及这些数据将移至何处(存储区域 RD_1)。 我们已经定义了 ADDR_1,其前面是我们在 PLC_2 中定义的 SendDataToPLC_1 整数标记。 现在,我们将为该整数标签和触发信号定义存储区域。 见图 14。 图 14. 定义触发信号和存储区域 定义触发信号 ADDR_1 和 RD_1 后,我们将这些参数填充到块配置中。 见图15。 图15.填写区块参数 现在,GET 块的配置已完成,您可以看到该块现在已准备好下载和运行。 见图16。 图 16. GET 块 GET 块现已配置完毕,一旦触发信号激活,该块将从 PLC_2 读取 ADDR_1 并将其写入 PLC_1 中的 RD_1。 -
西门子 西门子 PLC 与其他品牌 PLC 的通讯
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在之前的文章中,我们开始讨论两个或多个 PLC 之间通信的不同方式,到目前为止,我们讨论了智能设备功能以及西门子 PLC 专用的 PUT 和 GET 命令。 西门子 PLC 与其他 PLC 通讯 在本文中,我们将讨论另一种将两个 PLC 连接在一起的方法,这种方法比我们之前讨论的 PUT 和 GET 命令更具优势,因为与 S7 系列独有的 PUT/GET 命令相反。 这种新方法是一种开放的用户通信,这意味着我们可以使用它在西门子 PLC 和任何其他品牌的 PLC 之间进行通信,甚至不需要是两个 PLC,这种方法可以在 PLC 和任何其他可以理解的设备之间进行通信 TCP 网络协议如 PC、服务器、打印机等 在本文中,我们将展示如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立通信,在下一篇文章中,我们将展示如何在建立连接后在 PLC 之间移动数据。 开放用户通信块 TCON 和 TDISCON 我们使用 TCON 块在两个 PLC 之间建立通信连接。 连接建立后,PLC 将自动维护。 通信双方都调用 TCON 指令来建立通信连接。 这意味着我必须在两个 PLC 中调用 TCON 块,并且我们必须在两个 PLC 中配置该块,正如我们将在示例项目中看到的那样。 在块配置期间,我们将指定哪个伙伴是主动通信端点,哪个是被动通信端点。 这意味着哪个 PLC 将尝试连接,哪个 PLC 将打开通信端口并等待另一个 PLC。 当执行 TDISCON 块或当 CPU 更改为 STOP 模式时,现有连接将终止并删除建立的连接。 要再次建立连接,您需要再次执行 TCON。 使用 TCON 的示例 PLC 项目 正如我们在之前的文章中所解释的,要在两个 PLC 之间建立通信,我们必须建立两件事: PLC 之间的通信。 两个 PLC 之间的数据传输。 在本文中,我们将使用 TCON 块在两个 PLC 之间建立采用 TCP 协议的开放用户通信。 在下一篇文章中,我们将展示如何在连接完成后移动数据。 首先,我们创建一个新项目并添加两个 PLC。 我们将添加 CPU1516-3PN/DP PLC,并将它们命名为 PLC_1 和 PLC_2,目的是在它们之间建立连接。 见图1。 图1.添加 PLC_1 和 PLC_2。 现在,我们只需将 TCON 块添加到 PLC 逻辑中,正如我们之前提到的,我们需要为两个 PLC 调用 TCON,让我们从 PLC_1 开始。 只需拖放 TCON 块即可在打开的用户通信文件夹中找到该块。 见图2。 图2.拖放 TCON 指令 TCON 块本质上是一个功能块,因此当将其添加到我的主 OB1 时,我们将被要求为该块创建一个数据块实例。 创建数据实例并为其指定适当的名称。 见图3。 图3.创建数据实例。 现在,TCON 块已添加到您的逻辑中,我们需要配置该块的连接参数。 只需按块上方的蓝色小配置图标即可。 见图4。 图 4. 打开配置视图 当您按下蓝色图标时,您将打开 TCON 块的配置视图,我们可以在其中设置连接参数。 您会发现它与 PUT 和 GET 命令的连接参数非常相似。 见图5。 图5. TCON 连接参数。 由于我们使用开放式用户通信,TCON 块中的合作伙伴 PLC 选项比 PUT/GET 命令有更多选项。 见图6。 图 6. 合作伙伴 PLC 选项 从图中可以看出,我们有 4 种不同的选择,它们是: PLC_2:如果两个 PLC 位于同一项目中,则此处将显示 PLC_2 广播:这将使网络上的任何设备都可以使用连接 多播:这将与选定的设备(多个设备但不是所有设备)建立连接 未指定:如果 PLC 位于另一个 TIA Portal 项目中。 当选择未指定的选项时,我们会被要求添加 PLC 的 IP 地址,并且还需要添加新的连接数据。 见图7。 图7. 添加新的连接数据 如图所示,要创建新的连接数据,只需单击下拉箭头并按新建即可。 这将创建一个新的连接数据块,并将自动分配给 TCON 块,见图 8。 图8. 连接数据块已创建。 正如您所看到的,连接数据块已创建,现在我需要添加合作伙伴 PLC 的 IP 地址。 我们需要做的另一件事是选择哪个 PLC 将主动建立连接。 这将决定哪个 PLC 将负责建立连接,而另一个 PLC 将仅负责打开连接端口。 见图9。 图 9. 将 PLC_1 指定为主动连接建立。 当我们选择 PLC_1 作为主动连接建立时,PLC_2 将负责打开连接端口,我必须为该端口选择一个值。 它可以是任何值,但在 TIA Portal 中自动分配为 2000,因此我们将保持原样。 见图10。 图 10. 合作伙伴端口。 在上图中可以看到连接参数已经变成绿色,表示所有配置都已完成并接受。 当使用 TCON 在两个 PLC 之间建立连接时,两个 PLC 都必须调用 TCON 指令来建立连接,因此我们现在需要对另一个 PLC_2 执行相同的操作。 将 TCON 块添加到 PLC_2 的主 OB1 中,见图11。 图11. 在 PLC_2 中调用 TCON。 添加 TCON 块后,我们需要像配置 PLC_1 一样配置连接参数。 见图12。 图 12 PLC_2 连接参数 从图中可以看到,我们仍然选择 PLC_1 作为主动建立连接,而 PLC_2 的端口仍然保留为 2000。 两个 PLC 配置的活动连接建立和端口必须相同,否则连接将失败。 至此,两台 PLC 的连接配置完成,见图13。 图 13. 两个 PLC 中的 TCON 块。 从图中我们可以看出,我们还需要一件事,那就是为两个 PLC 定义 REQ。 我们为 PLC_2 创建了AllowConnection,为 PLC_1 创建了 StartConnection。 见图 14。 图 14. 定义 REQ 信号。 现在两个 PLC 之间的连接已经完成,如下: 当 REQ 信号有效时,PLC_1 将尝试与 PLC_2 建立连接,但直到 PLC_2 启用连接功能后才能这样做,并且当 PLC_1 的 TCON 块收到 REQ 信号时才会完成。 PLC_2 的 TCON 的 REQ 信号有效以启用连接(这意味着 PLC_2 将打开端口 2000 等待连接) REQ 信号有效,PLC_1 的 TCON 开始连接(这将允许 PLC_1 通过端口 2000 与 PLC_2 建立连接) 项目模拟 让我们编译我们的项目并开始模拟,看看如何建立连接。 要查看任何 PLC 以及 PLC 之间的连接,可以打开网络视图并打开连接选项卡以查看所有活动的和已建立的连接。 见图15。 图 15.PLC_2 正在等待连接。 当 REQ 为 True 时,PLC_2 将打开连接,您可以看到 STATUS 值为 7002 _ 如果您检查 TCON 块的帮助,状态 7002 表示正在等待连接_。 您还可以从网络视图的图片中看到 PLC_2 正在等待连接。 当 PLC_1 TCON 块的 REQ 为真时,PLC_1 将尝试与 PLC_2 建立连接,并且由于 PLC_2 已打开并等待连接,因此 PLC_1 将能够找到并与 PLC_2 建立连接。 见图16。 图 16. PLC_1 建立连接。 请注意,网络视图中的所有连接现在均呈绿色,表示 PLC_1 和 PLC_2 之间的连接正常且正在进行。 正如我们之前提到的,一旦连接建立并建立,它就会自动维护。 因此,即使 REQ 信号变为假,两个 PLC 之间的连接也将保持。 见图17。 图 17。连接仍在进行中。 但是,如果转动 REQ 信号并不能断开连接,如果我想断开连接,该如何断开呢? 断路块 TDISCON 要断开两个 PLC 之间的连接,我们可以将 PLC 置于 STOP 模式,但这在运行过程中是不实用的。 我们还可以使用断开块或 TDISCON。 要添加 TDISCON 模块,只需将其拖放到您的逻辑中,见图 18。 图 18. 添加 TDISCON 块 正如您所看到的,添加 TDISCON 块将需要一个数据块实例,一旦将该块添加到您的逻辑中,您所需要做的就是分配您需要断开连接的连接 ID,并且您还需要为其分配一个 REQ 信号 启动连接终止。 见图19。 图 19. TDISCON 块。 现在,让我们在另一个 PLC 中添加一个 TDISCON 块,这样我们就能够断开连接。 参见图 20。对于 PLC_1 的 TDISCON 块。 图 20. PLC_1 中的 TDISCON 让我们回到仿真,看看如何使用 TDISCON 模块,见图 21。 图 21. 连接仍处于活动状态。 从图中可以看出,PLC 之间的连接仍然有效,TDISCON 的 REQ 信号仍然为假。 如果 PLC_1 的 REQ 变为 TRUE,连接将被终止,但您会注意到 PLC_2 仍在等待连接,见图 22。 图 22. PLC_1 的 REQ 为真。 当 PLC_2 TDISCON 块的 REQ 为真时,PLC_2 将不再等待连接。 见图23。 图 23. 连接终止。 我们在本文中展示了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接。 -
西门子 在西门子 PLC 之间移动数据
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在上一篇文章中,我们讲了如何使用开放用户通信在两个 PLC 之间建立连接,我们使用 TCP 协议在两个 PLC 之间进行连接。 我们在文章中展示了如何使用 TCON 和 TDISCON 等指令来建立此连接。 在 PLC 之间移动数据 在本文中,我们将展示如何开始在上一篇文章连接的 PLC 之间移动数据。 为此,我们将使用 TSEND 和 TRCV 块。 发送数据至 PLC_2 我们将在上一篇文章中创建的项目的基础上进行构建,这意味着我们的项目中已经安装了 TCON 和 TDISCON 块。 我们将通过添加 TSEND 和 TRCV 块来继续我们的项目,以开始在两个 PLC 之间移动数据。 要将数据从 PLC_1 发送到 PLC_2,我们首先创建一个数据块,该数据块将保存我们需要发送到 PLC_2 的所有信息。 见图1。 图 1. 新建一个数据块。 正如我们之前讨论的,更好的做法是为块提供正确的命名,这样就可以轻松直观地弄清楚每个块的用途。 其次,让我们在数据块中添加一些要发送到 PLC_2 的数据。 我们假设我们需要发送三个不同的数据标签。 见图 2。 图 2. 定义一些数据发送到 PLC_2。 为了能够将刚刚创建的数据块发送到 PLC_2,我们还需要做一件事,即确保未选择数据块的优化块访问。 为此,我们需要转到数据块的属性并取消选择该选项。 见图 3 和 4。 图 3. 进入数据块属性。 图 4. 取消选中 “优化块访问” 选项。 确保在使用 TSEND 块之前取消选中此选项,否则它将不起作用。 现在我们已经准备好了要发送到 PLC_2 的数据,让我们实际尝试发送它。 我们将通过使用 TSEND 块来做到这一点。 只需将指令拖放到主 OB1 中即可将其添加到您的逻辑中。 见图 5。 图 5. 添加 TSEND 块。 添加 TSEND 块时,系统会要求您创建一个实例数据块,因为它本质上是一个功能块,再次给它一个适当的名称。见图 6。 图 6. 为 TSEND 创建数据实例。 当 TSEND 块添加到您的逻辑中时,您会发现我们需要进行一些重要的配置。 见图 7。 图 7. TSEND 块。 正如你所看到的,我们需要进行一些配置: REQ 信号允许发送数据。 对于 REQ 信号,我们将定义一个标签 SendData,用于启用数据发送。 我将用来发送数据的连接的 ID,因为我可以有多个连接,所以我需要指定将使用哪个连接。 在上一篇文章中,我们为 PLC_1 和 PLC_2 之间的连接定义了 ID 1,因此我们将ID设置为 1。 我需要发送的数据。 我们已经创建了一个数据块,其中包含我需要发送的所有信息,我们只需将数据块拖放到 TSEND 块中即可。 见图 8。 图 8. 配置 TSEND 块。 从 PLC_1 接收数据 当我们设置 TSEND 将数据发送到 PLC_2 后,我们需要在 PLC_2 内部接收这些数据。为此,我们将使用 TRCV 块。见图9。 图 9. 添加 TRCV 块。 如您所见,只需拖放 TRCV 块即可将其添加到您的逻辑中。 您知道接下来我们需要为该块创建一个数据实例。 见图 10。 图 10. 将数据实例添加到 TRCV 块。 将 TRCV 块调用到您的逻辑中后,我们需要像配置 TSEND 一样配置一些参数。 见图 11。 图 11. TRCV 模块。 如您所见,EN-R 是一个使能信号,必须为真才能允许 TRCV 模块开始接收数据。 ID 是将要使用的连接,DATA 是将存储接收到的数据的位置。 因此,我们需要创建一个数据块来接收其中的数据。 请记住给它一个合适的名称。 见图 12。 图 12. 创建数据块接收数据。 接下来,定义将从 PLC_1 接收的信息标签,最佳实践是确保数据块具有与将接收的数据相同的数据结构。 见图 13。 图 13. 定义数据标签。 对于 EN-R,我们将定义一个 RecieveData 标签来启用数据接收。 对于连接 ID,它是我们之前设置的 1。 见图 14。 图 14. EN-R 信号。 接下来,将我们创建的数据块拖放到 TRCV 块中以完成所有配置。 见图 15。 图 15. 将数据块添加到 TRCV 块中。 当您拖放我们创建的 DB 时,您会注意到 TIA Portal 发出警告,并且它不接受我们刚刚添加的数据块。 这是因为我们没有像对 TSEND 那样取消选中数据块的“优化块访问”。 见图 16。 图 16. 优化的块访问。 正如我们之前所说,我们必须取消选中此选项,否则 TSEND 和 TRCV 将无法工作。 见图 17。 图 17. 取消选中优化块访问选项。 您可以看到,一旦我们取消选中 “优化块访问”,TRCV 指令就会接受数据块。 现在 TSEND 和 TRCV 块的调用和配置已完成。 让我们模拟一下我们的项目,看看数据将如何发送和接收。 首先,我们将创建一个简单的逻辑,确保我们定义的标签有数据值。 自动创建数据值的简单逻辑 我们将创建一个简单的逻辑来自动创建和更新数据值,以便更容易查看两个 PLC 之间的数据传输。 见图 18。 图 18. 简单的逻辑。 这个简单的逻辑将使用时钟位 %M50.5 自动更改 SendToPLC_2 数据块内存储的数据值。 PLC 项目仿真 让我们编译我们的项目并开始模拟。 我们需要做的第一件事是使用我们上一篇文章配置的 TCON 块在两个 PLC 之间建立连接。 请记住,我们需要启用 PLC_2 的连接功能并建立与 PLC_1 的连接。 见图 19、20 和 21。 图 19. PLC 之间无连接 图 20. 启用连接。 图 21. 建立连接。 现在,我们在两个 PLC 之间建立了连接,让我们按照设置将数据从 PLC_1 移动到 PLC_2。 首先,将 SendData 标记设置为 TRUE。 见图 22。 图 22. REQ 信号为真。 您可以看到,即使 SendData 为 TRUE,PLC_1 也没有向 PLC_2 发送数据。 这是因为 TRCV 模块尚未启用以接收任何数据。 见图 23。 图 23. EN-R 信号错误。 如您所见,由于 RecieveData 尚未为 TRUE,因此未启用 TRCV 模块来接收任何数据。 一旦 EN-R 为真,数据将从 PLC_1 的数据块发送到 PLC_2 的数据块。 见图 24。 图 24. EN-R 信号为 True。 一旦 EN-R 为真,您可以看到数据从 PLC_1 移至 PLC_2。 如果你打开工程自己模拟一下,你会发现 PLC_1 中的数据不断更新,并传输到 PLC_2 中。 这就是我们如何在两个 PLC 之间建立通信并使用 TSEND、TRCV 块。 -
什么是 PLC 改造项目?
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
PLC 改造项目涉及用更新、更先进的版本更新或替换旧的 PLC(可编程逻辑控制器)系统。 这样做是为了提高性能、添加新功能或保持与现代技术的兼容性,同时最大限度地减少完全更换现有设备的需要。 PLC 改造项目 当您在任何系统中工作时,无论是工业自动化还是其他任何系统,您并不总是需要调试全新的工厂。 有时,旧工厂无法按照预期结果正常运行。 这意味着不是整个系统,而是某些部分。 它可能是 PLC 系统或电气系统或机械系统。 与其改变整个系统,不如只用新系统替换该部分。 其余系统将保持原样。 这称为改造。 这是工程师需要学习的一个非常重要的方面。 在这篇文章中,我们将看到与改造 PLC 系统相关的步骤。 为什么需要 PLC 改造? 当您拥有 PLC 系统时,您必然会遇到有时会出现故障的情况。 对于任何系统(不仅是 PLC)来说,这是一个自然的考虑因素,并不意味着 PLC 系统每次都会出现故障。 这是考虑到的最坏情况。 目前,除 PLC外,其余电气、机械系统均工作正常。 PLC 系统更换需求的常见原因是 – 逻辑中反复出现错误、过时的 PLC 已发生故障且在市场上不再可用、PLC 中反复出现的固件或硬件故障以及无可用服务。 在这些情况下,最好的选择是仅更换 PLC 系统,而不是更换整个系统。 这称为 PLC 改造工作。 基本上,您要么将 PLC 升级到新的,要么完全用新品牌替换它。 这降低了成本,不影响原来的工作工厂,节省时间并提高可靠性。 基本上,工厂的工作逻辑将保持不变; 您只需用新硬件替换它并运行工厂即可。 PLC 改造项目流程 第一步是研究 PLC 的控制面板图。 每个 PLC 都有自己不同的接线版本以及汇源概念。 所以,有必要先了解一下原来的接线。 这将帮助您根据当前的 PLC 准备新的 IO 列表。 因为如果一味地使用相同的 IP 列表,那么当您安装新的 PLC 时,您大多会遇到现场接线问题 如果可能的话,获取旧程序。 如果不可能,则在前往现场之前在办公室制定新的逻辑。 另外,与客户或最好的情况(最终客户端)一起测试逻辑。 最终客户将提供最大的帮助,因为他们已经操作了旧的 PLC 系统,并且可以帮助快速解决问题。 客户可以帮助深入检查流程。 如果在前往现场之前对程序进行测试,那么它将大大减少您在现场的时间。 尝试匹配屏幕并开发图形,就像旧的运行屏幕一样。 这将帮助操作员按照习惯更轻松地运行工厂。 一旦逻辑和图形准备就绪,就可以与接线员一起规划现场。 接线员首先将新的 PLC 替换为旧的 PLC,然后用万用表交叉检查所有点。 这是为了确保所有点是否已按照新接线连接。 需要注意的一件重要事情是,改造需要适当的关闭,因此在计划现场访问之前请务必确保。 在断电情况下对接线进行环路检查后,启动系统并下载 PLC 和图形中的最新程序。 现在,首先,您必须检查 IO。 这是非常关键的一步,因为您要用新线路替换旧线路。 现场的所有信息办公室必须以与之前相同的方式做出响应。 如果没有这个,您就无法以自动或手动模式运行设备。 现在,检查编写的逻辑,看看它是否按照早期系统执行。 所有安全联锁、许可条件、顺序和其他逻辑必须以与旧系统相同的方式工作。 如果工作正常,必须得到客户和最终客户的批准以进行验证并在报告中提及。 制作所有最终报告,存储最终备份,并拍摄正在运行的系统的照片和视频。 这可以确保您完成的改造 PLC 项目有一份完成报告。 PLC 项目概要 评估现有的 PLC 系统,确定改造需求,并确定项目目标、范围和限制。 设计详细的新系统计划,确保与现有机械和网络的集成,并制定迁移策略。 备份当前系统中的所有程序、数据和文档并准备恢复计划。 采购新的 PLC 和任何附加硬件,确保兼容性和可用性。 为安装场地准备必要的安全措施,并根据需要安排停机时间。 退役旧的 PLC 系统并安装新的 PLC 和相关硬件。 将程序逻辑传输或重写到新的 PLC,测试所有功能和通信。 对新系统进行全面测试,验证性能并进行必要的调整。 对人员进行新系统操作和维护方面的培训,并更新或创建系统文档。 正式切换到新的 PLC 系统,密切监控问题,并提供必要的支持。 进行实施后审查,以评估成功情况、记录经验教训并规划未来的维护或升级。 -
西门子 跨 PLC 系统传输数据 – TSEND_C 和 TRCV_C
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在上一篇文章中,我们讨论了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接,以及如何使用 TSEND 和 TRCV 块在它们之间移动数据。 跨 PLC 系统传输数据 在本文中,我们将学习一条新指令,可用于使用 TSEND_C 和 TRCV_C 块跨 PLC 系统进行通信和传输数据。 TSEND_C TSEND_C 指令是 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 TSEND_C 指令是异步执行的,具有以下功能: 与 TCON 块类似,建立通信连接。 通过类似于 TSEND 块的现有通信连接发送数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TSEND_C 被称为“紧凑”,因为它同时充当 3 个以上的块。 TRCV_C TRCV_C 指令也是一条 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 “TRCV_C” 指令异步执行,依次实现以下功能: 建立和建立类似于 TCON 的通信连接。 通过类似于 TRCV 的现有通信连接接收数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TRCV_C 被命名为“紧凑”,因为它同时充当 3 个以上的块。 在我们的 PLC 项目中使用 TSEND_C 和 TRCV_C 在上一篇文章中,当我们需要建立并将数据从 PLC_1 发送到 PLC_2 时,我们必须在每个 PLC 中使用三个不同的块。 见图1。 图 1. PLC_1内部逻辑 如您所见,我们使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TSEND 从 PLC_1 发送数据。 PLC_2 也是如此。 见图 2。 图 2 PLC_2 逻辑 我们再次使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TRCV 接收来自 PLC_1 的数据。 现在,我们想要替换所有这些块并尝试使用 TSEND_C 和 TRCV_C 来实现相同的功能。 首先,在需要发送数据的 PLC_1 中,我们将使用 TSEND_C 块,只需将该块拖放到主 OB1 内即可。 见图 3。 图 3. 添加 TSEND_C 块。 由于 TSEND_C 本质上是一个功能块,因此系统会要求您创建一个数据实例。 见图 4。 图 4. 为 TSEND_C 创建实例 TSEND_C 看起来与 TSEND 块类似,因为您需要进行一些配置并添加一些信号。 见图 5。 图 5. TSEND_C 块 现在,我们需要一个信号来发送 REQ 和数据并配置连接。 对于 REQ 信号,我们创建了一个 SendData 标签。 另外,我们可以拖放上一篇文章创建的数据块,我们需要将其发送到 PLC_2,我们可以将其拖放到块的 DATA 输入处。 见图 6。 图 6. TSEND_C 块的配置。 要配置块的连接参数,我们可以按块顶部的小配置图标打开配置视图。 配置视图看起来与 TCON 块的配置视图非常相似。 见图 7。 图 7. TSEND_C 的连接参数 我们已经在之前的文章中展示了如何配置连接参数,因此我们可以像使用 TCON 块一样进行操作,见图 8。 图 8 连接参数配置 通过这个连接配置,我们就完成了 TSEND_C 的所有配置。 请注意,与配置 TCON、TDISCON 和 TSEND 块相比,它快了多少。 现在,我们需要将 TRCV_C 添加到 PLC_2,以便它可以接收从 PLC_1 发送的数据。 在 PLC_1 的主 OB1 中,只需将 TRCV_C 拖放到您的逻辑中即可。 请参见图 9。请记住为 TRCV_C 块创建一个数据实例。 图 9. 添加 TRCV_C 将 TRCV_C 添加到您的逻辑后,我们需要对其进行配置。 正如我们对 TSEND_C 所做的那样,我们需要添加一个信号来启用数据接收,并且我们还需要添加将在其中保存数据的数据块。 见图 10。 图 10.TRCV_C 我们将 RecieveData 标签定义为 EN_R 信号。 见图 11。 图 11.定义 EN_R 标签 请记住取消选中数据块的 “优化块访问” 选项,否则该块将无法像我们在上一篇文章中展示的那样工作。 接下来,我们需要配置 TRCV_C 块的连接参数,就像我们对 TSEND_C 所做的那样,请记住,未指定的伙伴 PLC 现在是 PLC_1,见图 12。 图 12 TRCV_C 连接参数 PLC 项目模拟 现在我们已经配置了 TSEND_C 和 TRCV_ C 块,我们想要模拟我们的项目并看看它们将如何工作,但首先,我们将创建一个简单的逻辑来自动更新将发送到 PLC_2 的 PLC_1 的数据。 见图 13。 图 13. 自动更新数据的简单逻辑。 现在让我们编译并开始我们的项目的模拟。 您会注意到的第一件事是 PLC_1 和 PLC_2 将立即尝试建立连接,因为我们设置了 TSEND_C 和 TRCV_C,它们会自动尝试建立连接。 这就是两个 PLC 之间存在连接的原因。 见图 14。 图14. 直接建立连接。 可以看到,PLC 之间的连接是直接建立的,因为 TSEND_C 和 TRCV_C 中的 CONT 参数设置为 TRUE,这意味着该块将自动尝试与伙伴 PLC 建立连接。 我们可以在这里放置任何控制信号来控制连接的建立。 您可以看到的另一件事是 TSEND_C 的 REQ 和 TRCV_C 的 EN_R 设置为 FALSE,这就是为什么 PLC 之间不会有任何数据移动。 见图 15。 图 15. PLC 之间无数据传输。 如果 TSEND_C 的 REQ 信号设置为 true,则 PLC_1 将尝试发送数据,但会等待其他 PLC 允许接收数据,见图 16。 图 16. REQ 为真。 正如您所看到的,SendData 为 TRUE,但没有发送任何数据,因为 RecieveData 仍然为 false。 仅当 ReceiveData 设置为 true 时,PLC_2 才会从 PLC_1 接收数据。 见图 17。 图 17. 数据发送至 PLC_2 正如您所看到的,RecieveData 何时为 true。 数据将从 PLC_1 发送到 PLC_2,但是,您可以看到两个 PLC 内部的数据是不同的,因为 PLC_1 的数据按照我们之前所做的简单逻辑自动变化。 这意味着 EN_R 信号允许传输数据一次,当我需要再次传输数据时,该信号必须变为 false,然后再次变为 true。 查看随附的 TIA Portal 项目并查看 PLC 之间的数据传输。 -
通过开关控制 LED 的 PLC 示例
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
在本文中,您将学习通过开关控制 LED 的 PLC 示例并了解梯形图逻辑解释。 此 PLC 示例专为工科学生学习和练习梯形图逻辑而设计。 相同的 PLC 程序在工业用途上的实现会有所不同。 PLC 示例 为以下应用设计 PLC 梯形逻辑。 我们使用三个开关来控制三个 LED。 如果任意 1 个开关打开,则 LED I 将亮起。 如果任意 2 个开关打开,则 LED II 将亮起。 如果 3 个开关全部打开,则 LED III 将亮起。 在上一篇文章中,我们讨论了使用拨动开关的相同 PLC 示例,了解逻辑。 输入 下面列出了所需的数字输入。 开关 1:I0.0 开关 2:I0.1 开关 3:I0.2 输出 下面列出了所需的数字输出。 电机 1:Q0.0 电机 2:Q0.1 电机 3:Q0.2 通过开关控制 LED 的梯形图 梯形图逻辑解释 对于此应用,我们使用 EcoStruxure Machine Expert Basic v1.2 软件进行 PLC 编程。 在上面的程序中,我们为开关 1 (I0.0)、开关 2 (I0.1) 和开关 3 (I0.2) 使用常开触点和常闭触点 在 Rung0 中,当任意 1 个开关(常开触点)打开且其他 2 个开关(常闭触点)关闭时,LED 1 将打开。 要打开 LED 2 Rung1,任何 2 个作为常开触点的开关应打开,其余 1 个作为常闭触点的开关应关闭。 为了使 LED 3 点亮,Rung2 中的开关 1、开关 2 和开关 3 串联,从而实现 AND 逻辑门。 当所有三个开关都打开时,LED 3 将打开。 当任意 1 个开关打开时 信号在真实状态下流过开关 1。 在假状态下,开关 2 和开关 3 还将信号传递到输出。 因此,LED 1 将亮起。 当开关 2 打开且开关 1 和开关 3 处于常闭触点状态且关闭时,LED I 将打开。 当开关 3 接通且其他 2 个常闭触点开关断开时,LED 1 将亮起。 打开多个开关将会断开电路。 常闭触点在真实状态时不允许发出信号。 结果,LED 1 将关闭。 当任意 2 个开关打开时 当开关 1、开关 2 打开并且开关 3 关闭时,LED 2 将打开。 开关 3 作为常闭触点,处于假状态时,将允许信号通过。 当开关 1 和开关 3 打开并且开关 2 关闭时,LED 2 将打开。 开关 2 在错误状态时将允许信号。 信号流经开关 2 和开关 3,因为它们处于真实状态。 在假状态下,开关 1 还将信号传递到输出。 因此,LED 2 将亮起。 当两个以上输入打开时,用于第三个开关的常闭触点在真实状态下不会闭合电路。 因此,LED 2 将熄灭。 当 3 个开关全部打开时 当三个开关 SWITCH 1 (I0.0)、SWITCH 2 (I0.1)、SWITCH 3 (I0.2) 全部打开时,LED 3 将亮起并关闭其他两个输出。 -
多个开关和电机的 PLC 逻辑示例
caixiaofeng posted A PLC and HMI Simplified Chinese article in PLC programming learning
通过梯形图了解多个开关和电机上的 PLC 逻辑示例。 该 PLC 逻辑示例是为工科学生学习和练习梯形图逻辑而准备的。 相同的 PLC 程序在工业用途上的设计会有所不同。 PLC 逻辑示例 问题陈述: 为以下应用设计 PLC 梯形逻辑。 使用四个拨动开关来控制四个电机。 如果开关 1 打开,则电机 I 将打开。 如果开关 2 打开,则电机 I 和电机 II 将打开。 如果开关 3 打开,则电机 I、电机 II 和电机 III 将打开。 如果开关 4 打开,则电机 I、电机 II、电机 III 和电机 IV 将打开。 PLC 输入 下面提到了该 PLC 逻辑的数字输入列表。 开关1:I0.0 开关2:I0.1 开关3:I0.2 开关4:I0.3 PLC输出 下面列出了所需的数字输出。 电机1:Q0.0 电机2:Q0.1 电机3:Q0.2 电机4:Q0.3 多个开关和电机梯形逻辑 这是给定问题陈述的 PLC 逻辑。 程序解释 本例中,我们使用施耐德 PLC 软件进行编程。 在上面的 PLC 程序中,我们使用了常开触点作为开关 1 (I0.0)、开关 2 (I0.1)、开关 3 (I0.2) 和开关 4 (I0.3) 电机1的开关 1、开关 2、开关 3 和开关 4 并联,从而实现或逻辑门。 对于电机 2,输入开关 2、开关 3 和开关 4 并联,从而实现或逻辑门。 开关 3 和开关 4 正在实现 “或” 逻辑门,即与电机 3 并联连接。 仅开关 4 连接到电机 4。 要使电机 1 打开,开关 1 或开关 2、开关 3 或开关 4 应打开。 要打开电机 2,开关 2、开关 3 或开关 4 应打开。 当开关 3 或开关 4 打开时,电机 3 将打开。 当开关 4 打开时,电机 4 将打开。 PLC 仿真结果 接下来,我们将看到不同输入开关ON和OFF组合的PLC仿真结果。 当开关 1 为 ON 时 当拨动开关1打开时,电流流过它(这里我们在电路的情况下使用术语“电流”,所以这里你可以将其假设为“电流”或简称为“信号”) 。 结果,电机 1 启动。 其他电机将保持关闭状态,因为开关 1 未连接到它们。 当开关 2 为 ON 时 当开关 2 打开时,电流将流过开关 2,从而打开电机 1 和电机 2。这是因为开关 2 仅连接到电机 1 和电机 2。 当开关 3 打开时 当开关 3 接通时,电流流过它,这将打开三个电机,即电机 1、电机 2 和电机 3。输入开关 3 仅连接到这些输出。 由于开关 3 未连接到电机 4,因此电机 4 将保持关闭状态。 当开关 4 为 ON 时 开关 4 打开时将打开所有电机。 开关 4 连接到所有电机,打开时,电机 1、电机 2、电机 3 和电机 4 将打开。