Preferred workflow using Function Chart Builder, Online builder and AC450?
While doing day to day changes of varying extent. My method of operation for most minor changes is the following:
Investigate how the program is working and figure out what need to be changed in function chart builder (6.3). Make the changes in function chart builder, print it to paper, mark changes with felt tip pen.
Make changes online using online builder, print from online builder to make sure all is OK. Upload DB to 800xA.
Since i am not the only one in my corporation working with the system i feel a need to regularly dump source code and backtranslate to the function chart builder to make it complete.
I know it is possible to translate source code and even swap PC:s while running (SWBL).
I can not help feeling that ABB would have been smarter while designing the function chart builder so that it would be possible to download changes directly from the FCB.
The way i do it now makes me essentially do the work twice. Is there any other way that i do not know about?
After all Siemens PROGRAF AS did all this in 1993....
Voted best answer
And so said every single person who ever worked on Advant Master.
The MP200 / AC400 series controllers are fantastic. Bullet proof, built like a brick ****house and pretty much impossible to kill. But the engineering tools are painfully slow and out of date. What you're doing is exactly right and there's no way around it.
Most folks just don't trust the FCB to ever be fully up to date and accurate. Pencil in the changes to the printouts and mark up the FCB if you have time as you go. Dump the source code on Friday using a batch file and back translate everything into FCB again on Monday morning.
You can stop reading here if you want, the rest is just background ....
The reason its like this is because of the way Code is executed in an Advant controller. The program is not compiled - its interpreted. The program is stored in memory as a "Linked List" of function (ie PC element) calls along with their parameter addresses. When you insert a PC element with online builder, you just add that function call to the end of the linked list, and set the address pointers to execute the new block in the correct order. On-Line builder does not know anything about the whole PC program, it just knows about the PC Element that you're currently looking at.
When you translate a PC program from source code, you create a completely new Linked List. But this is done by the Advant Controller - not by the engineering station. The engineering station, online-builder and Function Chart Builder know NOTHING about how the program is organized and stored in the controller memory. So it is not possible for the engineering station to know where to insert a new PC program element. This is also why you cant extend new functions onto MotCons and PIDcons for example. There's no room in the linked list to change the PC element options.
Siemens code is compiled. So you're loading compiled code into the Siemens PLC, which creates its own problems, including having to stop the PLC while you switch to the new code. In 2018 using compiled code makes perfect sense, because compiling only takes a few extra seconds and memory management of gigabytes of RAM is easy. But in the 1980's compiling wasn't so quick and easy, and 2 meg of memory was expensive. Using an interpreter and a very simple operating system made the whole system much more robust, and making on-line changes with ONB while the controller is running was a HUGE selling point for Asea.
it would be amazing if FCB could contain function similar to Macro recording in Excel, which could produce command file in order to update ONB with logic modifications done in FCB. How much effort it could save us!
I think good practice is inserting and connecting new PC elements in ONB and FCB in parallel especially during rush commissioning when there is not enough time to prepare FCB logic first.
Use EXECFILE command if you need to do a lot of similar modifications in ONB.
Is there a good "best practice" command file or method for source code dumping over multiple process stations?