First, what are trying to do that Telepace has you stuck? Maybe we can help you out there.
Great question. This is a water treatment plant that has a remote pump station; said pump station has a Red Lion control panel HMI (the rest of the remote sites do not have a Red Lion panel, so why they had one here is beyond me, I wasn't part of the design process unfortunately). What the lead operator has asked is for is the ability to change settings both at the Red Lion panel, and at the HMI at the water treatment plant (Wonderware). The sites communicate via modbus over a radio.
So basically what I've done is I pack the bits into a 16 bit register that are read via the radio link, and pack the bits from the HMI into a second register and compare them. If the values don't match when the radio updates the values, then I know the settings have changed at the remote site, so I update the HMI values. If the values don't match and the radio hasn't updated, then I know the HMI values have changed and I send new values to the remote site.
That actually works pretty well. The problem I'm facing is how to compare integers and floating points. They're all sequencial in the register so they're easy to read, but I can't find a simple way to compare an array of values to another array. CMPB is the closest but the annoying thing is that the second array compared is overwritten by the index of any differences found. So I could create a ton of CMPU and CMPF blocks one at a time, but you can really only fit 3 or so per network and I have to do it twice; one comparison for when to write new values from the remote site to the WTP HMI, and vice versa.
Thus, I was wondering if writing structured text or C++ would be easier than setting up all that logic.
Next, what model of ScadaPack are you working with
It's a Scadapack 357, new enough that it has an ethernet port and all the serials are RJ45s but old enough that it doesn't have the green Phoenix wire terminal blocks.
Can you flash the ScadaPack to use the ScadaPack Workbench Software? Some of the older units cant be changed but I think all of the newer ScadaPack's can be flashed for Workbench. The reason why is that Workbench has all the IEC languages. So you can use Structured Text to write your program. That may help get you over the hump.
Good question, I'm not sure. I've only ever developed in Telepace Studio and haven't ever done anything in Workbench, so I'm not sure how big of a deal that would be.
I have a meeting with my ScadaPack Vendor on Monday to go over some things. I will ask him about the C/C++ programs and see if he can help me. I will post back on Monday.
Thanks for any help you can provide!