Recently I started a project using ABB Control Builder to program a AC500 PM573 PLC.
I need to write a collection of C functions that can be used in CoDeSys as functions & function blocks so the end user (PLC Programmer) doesn’t need to use Structured Text (ST) to write what would be complicated Pascal.
Control Builder doesn’t provide a C editor, so I chose something light as I don’t need a full IDE – Sublime Text 2. This is the first time I’ve used it.
Control Builder is also a bit dated and doesn’t seem to have keyboard shortcuts for compiling, so I created my own build system for AC500 C development. This is the sublime-build file I used, thanks to sublimetext.info:
C.sublime-build
{ "cmd" : [ "C:\\GCC\\4.7.0\\bin\\powerpc-elf-eabi-gcc.exe", "-I", "C:\\Program Files (x86)\\Common Files\\CAA-Targets\\ABB_AC500\\AC500_FWAPI", "-mcpu=860", "-fno-common", "-msdata=none", "-fno-jump-tables", "-fno-section-anchors", "-fno-merge-constants", "-fno-builtin", "-nostdlib", "-Werror-implicit-function-declaration", "-Wconversion", "-std=c99", "-c", "C_Code_App_Shell.c", "-o", "C_Code_App.obj" ], "shell" : true, "working_dir" : "$file_path", "path" : "C:\\GCC\\4.7.0\\bin" }
You’ll notice the following things about this build definition:
- It won’t work with the “automatic” setting as I don’t want it picking up any other C projects
- It compiles a specific file only – C_Code_App_Shell.c – which is the same file compiled by Control Builder so your other included files should be included properly
Use at your own risk, and I recommend using Control Builder to finally build your code when ready for testing and production, but this is a handy way of using a modern editor in the meantime.