General Posts

Rockwell Automation Software Woes

One of the major players in the world of industrial control automation is Rockwell Automation. They make a vast array of products (or private-label from other companies to fill in their gaps), which include but are not limited to: Industrial servo controller/drives, variable frequency drives, PLCs (Programmable Logic Controllers – think hardened PCs that are made to run one piece of software in a loop, very quickly, and never crash… tho I have crashed them before, but that is another story), temperature controllers, circuit breakers, servo motors, HMI’s, etc.

They also make their own software to program their products. The most popular packages being: RSLogix5000, and RSView Studio – for programming their PLC’s and HMI’s respectively.

I use their stuff every other week or so when I’m not in the middle of a major development project (in which case, if the project is based around their hardware, I use their software every day).

Just a couple weeks ago, my PC was feeling pretty slow, and starting to crash occasionally in obnoxious ways, so I asked our IT guy if it was OK if I formatted my computer and reinstalled. At this time I casually mentioned that if we wanted another person to test-pilot Windows 7 I’d be up for it (a hand-full of our people have tried it with much success, though corporate isn’t quite sure they are ready to support it yet on every new PC coming in the door). He thought that was a good idea, so I did a little homework and found that while most of my software that is special for my job (like the Rockwell software) worked in Windows 7, almost all of it did NOT work in the 64bit version.

So I installed the 32bit version for now, and went on my merry way. But, now I’ve started to unravel some of the little annoyances, and things I’ve had to do to make them work right, and I thought I would share for anyone who follows in my footsteps. But before I dig into that too hard – I should note, I hosed up my computer for a day or so, trying to move my profile location to my second partition (not recommended, ask me if you want to do this and I’ll tell you what I messed up). That seemed to have caused some headaches, but re-installing most my software fixed the vast majority of my problems.

K, so there is the big list of issues:

Ultraware 1.64:
Windows XP SP3 – all our PC’s where I work, including mine prior to formatting for Windows 7, can’t compile projects. It gives me a Win32 Heap error. I fixed this by downloading the latest package of cygwin or mingwin (can’t remember which) and extracting the cygwin1.dll and replacing the one in the windows system folder.
Windows 7 – has to be run as aministrator (find the file and right click on it, go to compatibility and check “run as administrator”). If I recall correctly I couldn’t get it to compile otherwise, but I think I could open the program.

Panelbuilder32 3.82.01
Windows 7 – Couldn’t get it to open unless it was run as administrator. If I double-click a file to try and open it from the file explorer, I get an error and it won’t open, even though the application opens. If I use the File -> Open dialog it loads correctly.

But the big one here, is that when I go to download the file from the software to the device I get a blank error box, with just one of the exclamation point icons, and no text. I can click OK and that is about it. I had to grab an XP computer with the software on it to load it. I’m going to try downloading the “Windows XP” virtual machine from microsoft and putting it in that, and see if I can make it work somehow. But until then, I can edit and save file, but not load them onto hardware – which is a pretty major part of any of these software packages.

RSLinx 2.56
Installs fine, seems to load, at some point it stopped giving me an icon in the system tray (Maybe it never did and I just didn’t notice), and I can’t bring up the UI at all, even though it says the process, and subsequently the service is running.

The fix I found on Rockwell’s user forums. You can load the ‘control panel’ for RSLinx, and there you can stop the service, uncheck the box that says “Always run this as a service” and then restart the service. That gave me the icon in the system tray and let me configure communication drivers from within it. I also tried running it as administrator and turning off UAC. Dunno if that made a difference in the overall picture, because they didn’t fix the problem, but that was something that was done in case my control panel trick doesn’t work for you.

RSLogix5000 16.03
Just worked, and seemed to go great and do everything it was supposed to after I go RSLinx working. No need to run as administrator or any of that.

But, to any Rockwell people that stumble across this, I will say in general, asking me if I want to install adobe flash player EVERY SINGLE TIME I open your software, is a huge ‘no-no.’ If I want flash player installed, I will install it. And what the hell do I need it for anyway? Your start page is worthless to me if I’m not a total newbie. There are better ways to give me access to sample programs and help files. Flash is not the answer, or the future – or at least that is what Apple tells me – at any rate, it is annoying. Cut it out, get rid of that. (Note: I haven’t run v17 in a long time, and haven’t ever run v18, so if you got rid of this nuisance, congratulations – any chance you would patch v16 for me to get rid of it too?)

Latest Activation tools work fine, latest control flash for v16 CPU’s worked fine, so did the BootP server (though for whatever reason it didn’t seem to stick on a power cycle earlier today, I might track that down this afternoon).

So my big suggestion here, is that 1) if you are going to rely on GCC and cygwin for your compilation environment, make sure you’re updating your software with the latest bugfixes to the compiler toolchain. (cudo’s to you for sticking with ANSI C as your language of choice in the Ultra5000 BTW – cuz your normal structured text in RSLogix5000 blows, and I’m disliking IEC61131-3 less and less by the day – though it would be nice if you supported it natively instead of your hodge-podge structured text…OK, I’m getting off topic now). And 2) Please, PLEASE, PLEASE! support windows 7 with your older products (panelbuilder32, ultraware, etc), and get native x64 support into some of the older versions of the software like V16 of RSLogix. (For those of you who don’t know, if you have a controller that has its code written in V16 of the RSLogix software, you have to have V16-based firmware installed on the controller, and if you try to install V17 or V18 and load up the file you saved in V16, it will give you an error, ask if you want to convert. And if you do convert it, you have to change the firmware on the controller to match the rev. You cannot edit a file in V18, and save it with a target of V16 devices – which is super annoying because to work on multiple projects spanning features from multiple generations you have to have V16, V17, and V18 all installed on your machine, and when you load a file it pulls up the correct kernel of the software to support the format the file is saved in).

Finally, a word to controls people in general. Why do you prefer a single file for everything? I hate working with binary files when I’m writing code in structured text. There is no good standard way to do version control. Bzr, Git, Subversion, etc – 90% of their features are tossed out the window when you do this. Rockwell, I applaud the use of C for the Ultra5000, but seriously, packaging those text files into a binary blob, ensuring that I can’t get any benefit from DVCS or diff/comparison tools – not cool.

This goes for GE, Wago, and all you others out there. Our world is increasingly about writing code. Let’s not re-invent the wheel and make walled gardens everywhere, and instead adopt some standards text, or ASCII based file format that we can do simple version control and file compares on. Hell, rockwells proprietary diff tool exports ladder logic into XML, let’s just do that, every function or function block could be an XML file in a directory tree, with a single project XML file at the top connecting them all together. Or anything like that, something simple could be done.

OK, off my soap-box. Anyway, hopefully some of this is helpful for those who follow in my windows 7 path.