Hello, I am currently experiencing occasional issues with a program I have running. Despite being experienced in ladder programming, I have incorporated ST and SFC in the construction of the program due to the specific software being used (Eurotherm PAC 9 with Eycon HMI & T2750 PLC). The program includes a 20-step SFC auto sequence as well as a manual page where individual devices (such as door open/close, ram up/down, pump on/off) can be controlled via buttons for setup or maintenance purposes. To run the sequence successfully, it is important for these devices on the manual page to be turned off, for example, setting Door_open to 0. I am concerned about whether these manual instructions could potentially disrupt the running sequence if Door_open is set to 1. If I had used ladder programming, I would have included a normally open contact in an auto/manual rung to prevent manual operation. However, I am unsure of how to achieve this using ST. I would greatly appreciate any guidance, as I am still relatively new to using alternative programming methods compared to ladder logic.
Could manual instructions disrupt the execution sequence of a program? Hi Norman, Whether it's SFC or LAD, a poorly written program is still a poorly written program. Therefore, the answer is likely YES. SFC is something I plan to learn after retirement, but it could be your time now. Additionally, there should be a way to incorporate a negative response in SFC programming.
Have you considered mapping io to separate memory first before attempting to invert IO on a ladder or ST beforehand? Is there a simple command like NOT(myVariable) available for this purpose?
The use of "elseif" is essential in determining the outcome of conditions in a sequence. If both condition 1 and condition 2 are met, then "This" will be set to true. However, if condition 1 is met but not condition 2, then "This" will be set to false. In all other cases, "This" will also be set to false.
The straightforward solution is to initiate the motor if the start signal is received and the interlock is active, or if the motor is running but the manual mode is not engaged. While this logic may seem simple, ST programming is not well-suited for boolean operations like this. Ladder logic is more visually intuitive for understanding the automation process. I find IF-THEN statements to be verbose and prone to causing confusion. They often require more code and can lead to conditional jumps in compiled PLC programs.
In programming, utilizing "if else" statements efficiently is crucial for determining outcomes based on certain conditions without needing to see the entire sequence. By using the appropriate conditions and logic, you can minimize the number of lines in your code while still achieving the desired results. For example, you can set a default value of "false" for a variable, then use a succinct statement to change it to "true" if both condition 1 and condition 2 are met. This streamlined approach optimizes code readability and functionality.
In Structured Text (ST), you can essentially achieve the same functionality that you've described in ladder logic. To prevent any unintended manual disruption to your auto sequence, you could create a condition before any manual commands are run, which checks whether the auto sequence is in progress or not. For instance, if you have a boolean variable like 'auto_sequence_running', you could surround each manual function with an IF statement that checks if this variable is false before executing (e.g., IF NOT auto_sequence_running THEN Door_open:=1; END_IF; ). This would be similar to using a normally open contact in ladder logic. It's also worth examining the state transitions in your SFC sequence to ensure that manual commands can't interfere with the auto sequence. Remember, transition conditions in SFC should be carefully thought out to not conflict with other parts of your sequence.
You could potentially use a boolean or some sort of "lock" variable in the ST programming to prevent the manual operation from taking effect during an automatic sequence. For instance, you could declare a boolean variable such as 'autoRunning' that is set to 'TRUE' when the automatic sequence begins and only reverts to 'FALSE' when it's complete. Then, in your manual directives, you simply include a conditional statement to check the status of 'autoRunning'. If 'autoRunning' is 'TRUE', the manual command is ignored, effectively replicating the behavior of the normally open contact in ladder logic. Hope this helps!
✅ Work Order Management
✅ Asset Tracking
✅ Preventive Maintenance
✅ Inspection Report
We have received your information. We will share Schedule Demo details on your Mail Id.
Answer: Answer: In ST programming, you can achieve the equivalent of a normally open contact by using conditional statements to check the status of the manual inputs before allowing them to influence the running sequence. By incorporating logic that prevents manual operation when certain conditions are met, you can ensure the running sequence remains uninterrupted.
Answer: Answer: Ladder programming is a graphical programming language commonly used in PLCs, whereas ST (Structured Text) and SFC (Sequential Function Chart) offer alternative textual and graphical programming methods, respectively. While ladder logic is more visually intuitive for many users, ST and SFC provide greater flexibility and control in certain scenarios, such as complex sequences or computations.
Answer: Answer: When combining an SFC auto sequence with manual control functions, it's essential to establish clear control logic that ensures manual inputs do not interfere with the automated sequence. By structuring your program to enforce specific conditions or restrictions when manual operations are active, you can maintain the integrity
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.