![]() ![]() ![]() ![]() ![]() ![]() |
||
![]() |
||
![]() ![]() ![]() ![]() This board is for PLC Related Q&A ONLY. Please DON'T use it for advertising, etc. |
||
![]()
|
New Here? Please read this important info!!!
![]() |
#1 |
Member
![]() ![]() Join Date: May 2013
Location: Western SC
Posts: 131
|
Sabotaging a program for training purposes.
Introducing bugs/errors to a program that can be seen on the HMI..
So far I've done a misnamed tag so the hmi can't find it. a few Inputs tags reading the same physical input when they shouldn't. multiple different tags writing the same OTE. problems in our alarm text and triggers.. Thoughts on other problems you folks have run into that started from seeing a problem on the hmi that was program related? Generally you'll have these only during startup. |
![]() |
![]() |
#2 |
Member
![]() ![]() Join Date: Nov 2016
Location: Fields of corn
Posts: 1,220
|
Lack of alarms is probably one that gets me daily. I am trying to change it, but... my god have people messed this up royally in the past.
|
![]() |
![]() |
#3 |
Member
![]() ![]() Join Date: Aug 2015
Location: Michigan
Posts: 88
|
1 Remove all the JSR's from your main.
2 Reset the HMI terminal IP, 3 Copy with a length of 5 from an array with 4 elements, |
![]() |
![]() |
#4 |
Member
![]() ![]() Join Date: May 2013
Location: Western SC
Posts: 131
|
1 won't work as you won't have a HMI indication of a problem.
2. won't as the HMI training terminal and program will be on the same PC. HMI is inside a VM running on a host the host PC on the new employees laptop. DHCP assigned as there is no need for a HMI system in field. remote into one of the HMI terminals for use during startup. we do use the HMI VM at the office for checking against programs loaded to inshop PLCs. Seeing that the HMI is fully functional. 3. Good if the HMI limitation wern't there. Now... I might be able to copy 4 from a 5, leaving a empty at the end.. have to look into that one. |
![]() |
![]() |
#5 |
Lifetime Supporting Member + Moderator
|
1. signed integer where they should be using unsigned - start seeing negative values after 32k limit
2. 1 based indexing where Zero based index is used - bits or values always off by one location (P2 starts when P3 is selected) 3. Timestamps that don't account for UTC or even DST 4. Animation that changes a datalink color to make it impossible to see when there is an error in the datalink address. |
![]() |
![]() |
#6 |
Member
![]() ![]() Join Date: May 2013
Location: Western SC
Posts: 131
|
I like those.. thanks guys for the ideas. I'll have to work over a second program with them. got enough in the first with what I did.
|
![]() |
![]() |
#7 |
Member
![]() ![]() Join Date: Nov 2017
Location: Maryland
Posts: 105
|
direct HMI feedback to incorrect tags. IE HMI display is for temperature x, point displayed value to register for level y
|
![]() |
![]() |
#8 |
Member
![]() ![]() Join Date: Sep 2009
Location: Pleasant Dale, Nebraska
Posts: 135
|
In my PLC classes, I have students develop small programs. They introduce plenty of mistakes to troubleshoot.
|
![]() |
![]() |
#9 |
Member
![]() ![]() Join Date: May 2013
Location: Western SC
Posts: 131
|
These aren't full on classes, its a training/explore the program for our new programmers. We have a programming standard, prebuilt programs and feature most of what we need. Parts are added and removed as needed based on customer wants.
|
![]() |
![]() |
#10 |
Member
![]() ![]() Join Date: May 2013
Location: Western SC
Posts: 131
|
|
![]() |
![]() |
#11 |
Member
![]() ![]() Join Date: May 2012
Location: Sanford, NC
Posts: 118
|
Throw in some ONS's, and then have some code to unlatch the storage bit. I've seen junior guys do this. Have an OTL paired with multiple OTU's scattered about. Maybe have an OTE on the same bit just for fun. Speaking of alarms, maybe a routine that just has 50 MOV's, each with a different number to the same DINT. Tie it to a multistate indicator on the hmi and watch it glitch as is scans out of sync with the code.
|
![]() |
![]() |
#12 |
Member
![]() ![]() Join Date: Jan 2011
Location: Houston, TX
Posts: 247
|
Order of operation problems are always a hang up in the real world. Take some logic that has to execute in a certain order then move the rings around. You can’t expect someone to fix it without some comments and documentation though. I’ve seen many experiences controls engineers break working code during debug or feature additions due to this.
Data mapping mix ups are another common thing Ive seen that indicate real world troubleshooting ability. Another good one that can easily stump people is to put add instruction that will overrun its destination tag’s data type. Bury the issue in a subroutine in a subroutine. This forces you to start setting traps to debug the program. This one is better in codesys or logix600. Logix5000 directs you straight to the rung where the overflow occurred. You can also do an intermittent triggered output. Set up some digital inputs and outputs that are buffered say in a continuous/freewheeling task. Set the RPI of the IO to some very large or very small value. Evaluate a high speed input counter in a cyclic task. Then In another task setup an output with some of the buffered inputs and the DN bit from the HSC instruction as conditions. Then go through and mess with the task priorities and timing until the trigger output works only intermittently. I actually fixed this issue on someone’s program a few weeks ago. The system triggered an event based off a registration mark input and encoder offset. Another issue that can focus on tasks is to set up three or four cyclic tasks. Adjust the task priorities and timing such that one of the tasks will never, or rarely, executes.
__________________
Anything is possible, when infinite resources are available. |
![]() |
![]() |
#13 | |
Member
![]() ![]() Join Date: Nov 2016
Location: Fields of corn
Posts: 1,220
|
Quote:
This will cause the screen to mostly show the correct value but every now and then display the wrong value as the tag was read mid calculation. |
|
![]() |
![]() |
#14 |
Member
![]() ![]() Join Date: Aug 2007
Location: A flat type "4"
Posts: 351
|
It’s generally not considered good teaching practice to show errors, so I would think twice, maybe tweak it to a refactoring of an otherwise working program. In other fields we have the saying “Children do as you do, not as you say”.
__________________
Jon Bolmstedt, Inspired Automatician. |
![]() |
![]() |
Bookmarks |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to switch drivers | lbeh | LIVE PLC Questions And Answers | 7 | December 11th, 2014 03:11 PM |
Assistance With Writing a PLC Program Using RS Logix 5000 Software | PLCHelp | LIVE PLC Questions And Answers | 5 | October 4th, 2011 04:50 PM |
Mitsubishi A series program memory | ukjimoo | LIVE PLC Questions And Answers | 3 | May 28th, 2011 04:34 PM |
Need Help with 1746-BAS error | bfore | LIVE PLC Questions And Answers | 9 | May 19th, 2011 04:24 PM |
Urgent!!! Ultimate Traffic Light Program Needed!!! | TWControls | LIVE PLC Questions And Answers | 34 | May 15th, 2007 08:15 AM |