Protect my code

mcgeeer

Member
Join Date
May 2006
Location
tennessee
Posts
4
I have a problem with maintenance guys going into my programs and make changes that doesn't need to be made. I what to protect my code to where i'm the only person allowed to make the changes. I still want allow maintenance to get online and trouble shoot the slc 500 program.
 
Last edited:
I know that it's not wise to judge a book by it's cover, but, based on your grammer and or typing skills, and the fact that you have maintenance people who are knowledgeable enough to go online with PLC's and troubleshoot with them, I'd say the problem may not be all them and none you. Perhaps the better solution is to monitor the changes and discuss them with the group at set intervals. This way at the very least, you'll have an idea why they are changing the programs. Better to work with a group than against them.

Russ
 
I use the password function in the RSlogix Software packages.
In 5K, I use Logix CPU Security Tool, and on the PLC5 and SLC platforms I use the Password function in the Controller Properties.
Use Master and User passwords.
I personally only allow people I can trust to have the passwords. Even my bosses do not know the passwords, only the electrical controls group know.
This keeps contractors and others out of the change control issue...
 
Kcarlen, I would like to do a little more than a password. I was thinking I saw something like code you could put in the program to protect the code. It would set a bit and in order to get the processor back to run mode you had to know where to change that bit. I setup all my panel views to report what's goin on with the program but i still have someone gettin into the program and making changes.
 
I've always been of the opinion that passwords and locks only keep honest people out.

To me, a better strategy would be to require that all changes be documented by the author in a logbook kept with the machine. If you or any of your technicians ever find an undocumented change, you track down who charged time against the machine since the last entry in the logbook. If your operators also keep a logbook, I would expect that they have entries such as "down 1/2 hour for electrical maintenance" or something similar, which can help in figuring out who has been poking around in the program.

Unless you want to get called in for every minor problem at any hour of the day or night including weekends, holidays and vacations, you need to get to a place where you and the techs trust each other.
 
Use a traceability program, such as RSMACC. It monitors the check sum of the running program vs the one in it's library.
 
What do the maintenance guys keep changing and why ?

Do you then change it back again ?

Surely you'd be better off getting to the root of the problem ?
 
Steve, thanks for your reply. It's true that passwords only keeps honest people out. 99% of the time I get called in anyways, so I don't care about that. I just want to set something in the code to where it will fault the processor when someone other than me makes a code change. That will be tha only way that I would know it had been changed. To many times guys have got in the program just to look at the code to see why something isn't working and some how a vaule would get changed. ie. timer base. Just all kinds of little stuff then you ask the guys who made the change and you get I didn't from everyone. I write all my programs myself, leave a copy on a server so the techs can get the documation.
 
Which SLC is it ?

You could use an eeprom and set the status bit

Program Compare S:2/9

When this bit is set inside a valid program that is contained in a memory module, no modification of the NVRAM user program files is allowed. This includes online editing, program downloading, and clear memory commands. Use this feature to prevent a programming device from altering the NVRAM program from the program contained in the Memory Module. If a memory module is installed with this bit set, and a different NVRAM user program is contained in NVRAM, the processor will not enter the Run mode. You must transfer the memory module program to NVRAM in order to enter the Run mode.

Its not fool proof but would require maintenance to burn the modified program to eeprom before they could get it to run...
 
You could always write it like me...



no one can understand the damn thing (not even me) that way the won't have any idea of what to change in the first place

BTW its not intentional
 
I can guess what's happening to mcgeeer, it's a maintenance man who gets in, cranks a bunch of values to test his theories, then tries to put it all back when he's done - he keeps missing things, like time bases.

While we have many excellent maintenance men here, and I work with several as well, we are all (including the good ones) well aware that there are those in the maint department who will conclude that anything wrong must be either in the code, or can be gotten around via the code, first thing.

Sadly, this is really just laziness (don't want to troubleshoot it themselves, get dirty, etc) but fortunately, it is the exception and not the rule.

I've worked with a couple of people in the past I'd have sooner given my spleen than my password...

TM
 
I wouldn't let anyone change my code period. If any changes are required I would discuss it first and when agreed upon, implement the changes myself.

The maintenance folks can access things such as timers,counters, temperature and pressure set points etc, but I always limit them to valid ranges so that they can't do too much damage.

If they lose track of what they've done then a 'Default' button will take them back to the starting point so that they can try again.
 
This depends on what is being changed and why. If it is timers counters and integers, then just maybe there is a difference in production set up between shifts. If logic is being changed, then you should look closely at the changes, and determine why the change might have been made.

I'm not sure I'd want to write code that would deliberately fault a processor. There are way to many safety issues, not to mention production issues involved. Teamwork is by far the best approach.



I've seen changes made to cover for a limit switch in a bad location, or a sensor that is not in stock. These changes should raise flags on your part, to solve a greater problem, not to start a tiff with maintenance.



Finally, I have seen very few perfect programs. I have seen great programs that functioned better than 99% of the time, but the less than 1% error caused great grief. Nagging minor issues can mean real production loss over a shift. Many control techs tend to look for problems with mechanicals, production and anywhere else before looking at the controls. I tend to doubt my controls and look for a better solution. Even if the program functions fine under normal conditions, try to remember that normal conditions are only temporary, and good controls can handle many out of the norm conditions.



I don't like using passwords, but have. I have also written code to change variables back to a known set of good numbers. I have even written code to change as operators change, much the same way you would change for different products. I have also seen other tricks to preserve a set of variables. This sould be the last resort.
 

Similar Topics

Hi, I have one Modicon M340, my customer is wanting the binary file of the project !! Is there any option to export the binary file without my...
Replies
4
Views
2,293
We have in the past talked many times about this issue, here is real life. Get more at WIRED
Replies
13
Views
4,655
Hello Everyone, I have in an electrical panel a simple 220VAC to 24VDC power supply (as shown on the picture bellow) can this type of power...
Replies
6
Views
1,376
Hi, I recently had to buy a batch of new electrical components containing 10 PLC Omron Type (CP1H-X40DRA) Apparently stored in store (to be used...
Replies
10
Views
3,575
Hi, I'm currently in the process of locking down a program, I have managed to set passwords for FB's and WS but can't seem to find a way of...
Replies
10
Views
1,792
Back
Top Bottom