>>Message imported from previous forum - Category:Realflo Electronic Flow Measurement<<
User: mchartrand, originally posted: 2018-10-17 18:28:41 Id:71
This is a re-posting from the obsoleted (October 2018) "Schneider Electric Telemetry & SCADA" forum.
Hi there- I was wondering if we could get some direction on the best way to update gas quality configuration automatically from our HMI every 20 minutes, based on polling a gas chromatograph. Here's our setup:
ABB Gas Chromatograph with 4 streams - polled via a Kepware Modbus driver talking Enron Modbus
GE Fanuc iFix reads this data, then normalizes the constituents (to add up to 100%) and sends updates out to a number of subscribed SP32's running RealFLO.
We've been trying to write the data down to RealFLO using Enron Modbus in our Kepware OPC driver. It's our understanding that we can write directly into RealFLO via Enron Modbus without having to write a ladder program in Telepace to update these registers.
Unfortunately, writing a group of 10 registers seems to come out of the Kepware driver as 10 individual Modbus function code 16 (write multiple register) commands, which are rejected by the ScadaPack with exception code 3 (Illegal Data Value).
Here are my questions:
Is writing to RealFLO via Enron Modbus the best way to do this? I can write a ladder program that executes the 803 (Set AGA-8 Gas Ratios) command in Telepace, but I was trying to accomplish this without writing ladder logic.
Is there anything special I have to do to write to the AGA-8 Enron registers? I can write to other 3xxx series Enron registers via this same driver, so I know the write works. Is there something I'm missing here?
Via Wireshark, I can see that only one (4 byte) register is packaged up with the Modbus function code 16 command going out to the ScadaPack from our driver. Is this really the root of the problem, or should it work as intended?
Any help would be greatly appreciated! Thanks!_**
Answering my own question for the benefit of others. It turns out the ScadaPack will reject anything that isn't a single write with all components adding up to 100% in the single write. Our driver was sending separate writes for each register. I worked around this by writing to straight modbus registers on the ScadaPack, then writing a ladder that uses a MSIP function looping back on the ScadaPack to write into it's own Enron registers._**
Late reply, but another option is to create an array containing all 21 floats of AGA 8 GC data. You can then write to the array, and that will be a single function code 16 write.
That's if the client supports it.