Version 22.00.00 of the software is experiencing an issue where the "EQL" instruction is incorrectly evaluating as true even when the inputs are not equal. Input #1 is a Dint Tag, while Input #2 is static. Different values are being input into Tag #1 and updating correctly. The "EQL" comment is typically used at the beginning of the rung, but even with Input #1 equal to 0 and Input #2 static at 25, the rung is still evaluating as true.
Could you kindly share the code online with the input values displayed? I am not very experienced with the EQL "instruction" in CCW.
Apologies, EQU instead of EQL - Understanding the Difference and How it Impacts Your Results
Step 35 in your PLC program is straightforward, with only one subtraction instruction. The remaining part of the rung focuses on managing steps. If other parts of your logic follow a similar pattern of sequential evaluations, keep in mind that a significant portion of your sequence can be executed in a single scan. This may result in multiple repetitions of the sequence instead of an "stuck" EQU situation. When constructing sequence steps in this manner, timer and counter instructions may not experience rung-in-false conditions.
In the world of PLC programming, timing plays a crucial role as the scan cycle acts as the heartbeat of the process. PLCs are known for being discrete devices, meaning they can only perform one task at a time. When monitoring something in the online mode of CCW, it's important to remember that the information displayed is sampled at a specific point in time. This means that even if a sequence step tag appears in multiple instructions, it doesn't mean it was the same value at the time of evaluation. Take a look at the attached program and images for a clearer understanding. The PDF shows the static program, while the PNG files capture instant snapshots of the program in action. Pay close attention to how the value of the step tag changes throughout the program, while the online display shows a sampled value at a specific time point. This discrepancy can lead to confusion, such as when an EQU comparison instruction shows a displayed value of 0 for the step tag being equal to 1, 2, or 3. This discrepancy occurs because at the time of evaluation, the step tag had different values than the displayed 0.
When considering a program and its online state, it is important to note that reversing the steps can impact the evaluation of EQU comparisons. In this scenario, only one step's EQU comparison can be True for a single scan sequence. For example, if step 1 is being evaluated, the value of step will be incremented to 2 at the end of the rung guarded by EQU step 1. Since the rung with EQU step 2 is executed before the rung with EQU step 1 in a single scan cycle, the EQU step 2 will not be evaluated and produce a True result until the next scan cycle. In the online state image provided, step is displayed as 2, while step initial, step 3, and step 2 are displayed as 1. This indicates that step was 1 at the beginning and 2 at the end of the scan cycle when it was sampled for online mode display. The comparison for rung 3 (EQU step 3) is True, while the comparison for rung 5 (EQU step 2) is False, suggesting that the online states of the rungs are sampled asynchronously at different times from the tags. Overall, using the online mode display may not always provide an accurate representation of a running PLC program's state. This highlights the importance of being able to predict the program's behavior over time in PLC programming, as timing is crucial in determining the outcome of events.
It's certainly puzzling that the "EQL" instruction is evaluating as true in these circumstances. I'm wondering if there might be discrepancies in data type handling or conversion that's causing this issue. You could try clearing the cache or resetting the system to see if this resolves the problem. Alternatively, you might want to verify if there are any additional conditions contributing to the rung's evaluation. It might be worth looking into the possibility of a potential bug with Version 22.00.00, too.
That definitely sounds like a frustrating bug. You might want to try applying the updated patch which the developers recently released as it claims to specifically address some discrepancies with the "EQL" function. If the problem persists, I would suggest raising a ticket with the support team - providing as many details as possible about your Static and Dint tag inputs - as this could potentially be an unreported issue with this particular software version. Until it's resolved, an alternative approach might be to use the "NEQ" instruction in conjunction with the “OTE” to simulate the "EQL" function, which might get your rung logic working as expected.
I've noticed this anomaly as well. It seems the "EQL" instruction is currently acting more as "ALWAYS TRUE" in this version. Have you tried using a workaround in the meantime, like using a comparison block instead until they can roll out a fix? It's not ideal, but in a pinch, it gets the job done. Also, I think it's worthwhile to report this bug to the software development team, if you haven't done so already. They might not be aware of this particular problem.
That sounds really frustrating! It might be worth checking if there’s some kind of type mismatch happening with the Dint Tag in Input #1 or if there's an unintended data conversion in play. Sometimes, software updates can lead to unexpected bugs like this, and it could also be a good idea to review any recent changes in logic or configurations. Have you tried testing with different value types or restarting the software? That might help isolate the issue further.
âś… 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: The issue is related to the "EQL" instruction incorrectly evaluating as true even when the inputs are not equal.
Answer: Answer: Input 1 (a Dint Tag) and Input 2 (static value) are causing the problem, where despite different values being input into Tag 1, the "EQL" instruction is still evaluating as true.
Answer: Answer: The "EQL" instruction is typically used at the beginning of the rung to compare two values for equality.
Answer: Answer: The problem occurs when Input 1 is set to 0 and Input 2 is set to a static value of 25, but the "EQL" instruction incorrectly evaluates as true despite the inputs not being equal.
Join hundreds of satisfied customers who have transformed their maintenance processes.
Sign up today and start optimizing your workflow.