Just in case you're having a rough day and need some consolation that you're not actually that bad at your job...and plus, I just need to tell somebody who will understand how ridiculous this is
I have been liaising with a large multinational company (who shall remain nameless) who makes a certain type of machine. Said company has installed two of these machines in one of my client's site. There has been much pain and suffering trying to deal with this company already.
Anyway, we asked if we could have a copy of the program so that we could set up communications with the central control system. No, their program is proprietary and they are unable to release it to us. Okay, that's fair enough I guess. I mean, odd, because it's not like it's a really whizzbang high tech cutting edge machine, what it does is quite basic. But no problem. As it turns out, despite all this secrecy, they haven't actually put any security on it at all, so we can quite happily upload it and marvel at how utterly ridiculous this code is. They must use identical code for every single machine they ever build and just disable the bits they don't need. There are about 75 programs in this thing, of which 5-10 are inhibited completely. There are 718 AFI instructions. The program takes up to 15 minutes to download. Again, not a complicated machine. But anyway, that's all beside the point.
We write up a spec and ask the company to make the changes for us. Unfortunately there are only 5 people in the world who are allowed to touch the code for their PLC's, only one of which does any work for Australian clients. Oh, and he's in Sweden and is a contractor. So we will need 4 month's notice for him to log in remotely and make these changes. Okaaaay...
4 months later he logs in, ignores the spec we wrote, makes about 5% of the changes and pats himself on the back for a job well done. After many phone calls to a grumpy programmer in Sweden who's been forced to get out of bed and finish the job we have it working more or less the way we want it.
A couple of months later we're ready to do the other machine. This time he's not available at all, so he's going to make the changes offline and send their local service tech in to download the program.
Local service tech shows up. Alarm bells start to ring when he spends two or three minutes trying to work out which card is the processor and which is the ethernet card. I just steer him to the server room, patch him into the network, give him all the IP settings and away he goes. Well, I mean, I leave him alone for 2.5 hours and by that time he's managed to download a new PLC and HMI program. We test it, all OK. He goes home.
3 weeks later, the customer turns off the machine. When it powers back up, the HMI doesn't look right. Our friendly local service tech has forgotten to make the new project the default one to boot to. I'm now interstate, so over the phone I talk the client through the process of getting into configuration mode via one of the many back door methods, working out which of the 11 runtime files left in various places on the HMI is the right one, selecting that file to be run at bootup, and restarting the terminal. It boots up, and it's got all the new stuff on it now, but nothing works. I dig through all the RSLinx Enterprise settings with the client and confirm that's all OK, then I jump online remotely and upload their top secret program. As it so happens, the PLC is in remote program mode. Okaaaaay...it also has a minor fault to do with loading from the CF card. Okaaaaay...so I switch it to run mode, and everything on the HMI starts working...except all the new stuff. Of course, our friendly local service tech has forgotten to write the program to the CF card, and so at power up it's overwritten the new program with the old.
So we ring the company who puts someone on a plane and sends them to site (because God forbid they just email me a copy of the top secret program to download myself). They arrive a few hours later and open up the cabinet. 5 minutes later I get a call from the client.
"uh yeah, this guy wants to know where to plug his laptop into to download to the PLC."
After a stunned silence, I replied "if he doesn't know where to connect his laptop to, I would suggest you take it off him, close the cabinet, and get him offsite before he hurts himself".
I have been liaising with a large multinational company (who shall remain nameless) who makes a certain type of machine. Said company has installed two of these machines in one of my client's site. There has been much pain and suffering trying to deal with this company already.
Anyway, we asked if we could have a copy of the program so that we could set up communications with the central control system. No, their program is proprietary and they are unable to release it to us. Okay, that's fair enough I guess. I mean, odd, because it's not like it's a really whizzbang high tech cutting edge machine, what it does is quite basic. But no problem. As it turns out, despite all this secrecy, they haven't actually put any security on it at all, so we can quite happily upload it and marvel at how utterly ridiculous this code is. They must use identical code for every single machine they ever build and just disable the bits they don't need. There are about 75 programs in this thing, of which 5-10 are inhibited completely. There are 718 AFI instructions. The program takes up to 15 minutes to download. Again, not a complicated machine. But anyway, that's all beside the point.
We write up a spec and ask the company to make the changes for us. Unfortunately there are only 5 people in the world who are allowed to touch the code for their PLC's, only one of which does any work for Australian clients. Oh, and he's in Sweden and is a contractor. So we will need 4 month's notice for him to log in remotely and make these changes. Okaaaay...
4 months later he logs in, ignores the spec we wrote, makes about 5% of the changes and pats himself on the back for a job well done. After many phone calls to a grumpy programmer in Sweden who's been forced to get out of bed and finish the job we have it working more or less the way we want it.
A couple of months later we're ready to do the other machine. This time he's not available at all, so he's going to make the changes offline and send their local service tech in to download the program.
Local service tech shows up. Alarm bells start to ring when he spends two or three minutes trying to work out which card is the processor and which is the ethernet card. I just steer him to the server room, patch him into the network, give him all the IP settings and away he goes. Well, I mean, I leave him alone for 2.5 hours and by that time he's managed to download a new PLC and HMI program. We test it, all OK. He goes home.
3 weeks later, the customer turns off the machine. When it powers back up, the HMI doesn't look right. Our friendly local service tech has forgotten to make the new project the default one to boot to. I'm now interstate, so over the phone I talk the client through the process of getting into configuration mode via one of the many back door methods, working out which of the 11 runtime files left in various places on the HMI is the right one, selecting that file to be run at bootup, and restarting the terminal. It boots up, and it's got all the new stuff on it now, but nothing works. I dig through all the RSLinx Enterprise settings with the client and confirm that's all OK, then I jump online remotely and upload their top secret program. As it so happens, the PLC is in remote program mode. Okaaaaay...it also has a minor fault to do with loading from the CF card. Okaaaaay...so I switch it to run mode, and everything on the HMI starts working...except all the new stuff. Of course, our friendly local service tech has forgotten to write the program to the CF card, and so at power up it's overwritten the new program with the old.
So we ring the company who puts someone on a plane and sends them to site (because God forbid they just email me a copy of the top secret program to download myself). They arrive a few hours later and open up the cabinet. 5 minutes later I get a call from the client.
"uh yeah, this guy wants to know where to plug his laptop into to download to the PLC."
After a stunned silence, I replied "if he doesn't know where to connect his laptop to, I would suggest you take it off him, close the cabinet, and get him offsite before he hurts himself".