I work at a Natural Gas Services company and they are looking at spending a medium fortune on a new SCADA system. I've seen the demos, and AdvancedHMI looks a million times better and is just as powerful. We already have the MODBUS compatible metering devices in place and I can ping them via modems.
Modbus Modbus Master CPU Rack Backup LAN Operator Workstations I/O Blocks I/O Dual PLC Bus PLC Bus CPU 1 Single CPU LAN.Integrated HMI provides facility-wide monitoring of alarms at multiple locations. TS Series Toxic Gas Detectors The TS Series Toxic Gas Detectors monitor.
What I can't figure out is the PLCAddressValue I need to call in order to get what I need out of it. The boxes are Honeywell ERX with the MODBUS translator board attached to Sierra Wireless modems.EDIT: some progress.
PLCAddressValue: 40000 returns no error, but a reading of 0. I think i'm on the right track!!!. This is the translator board document, but I can't find anything in there that works, it does state the address I need to call on page 32 (Pcor Pressure/TCor Temp)Right above that it says, 'Example Mapping - Corrector using 32-bit Register format' That is just an example!!That means whomever configured the translator board decided how to map the Mercury items to Modbus addresses.
You will not find that information in the manual. You need to have the config software for the translator board or project documentation that lists the mapping. That board only has serial connections, so you have it wired to a comm port on the cell modem? And in the cell modem config, you have a TCP port assigned to the modem's serial port?
I assume that's why you're using Port 12345 in your CAS screenshot. If that's the case, you need to use the Modbus RTU via TCP protocol or its equivalent in AdvancedHMI. This protocol encapsulates the ModbusRTU msgs in a TCP wrapper, and is different than Modbus TCP/IP.Then you need to know if your Modbus registers in the board are set for 16-bit or 32-bit, I see an option for either.If you confirm all that, try using CAS to read either register 7000, or 47000, for a length of 1 if 16-bit, or 2 if 32-bit.
Some devices need the 40000 at the beginning, some do not. Spot on, cell modem is a Sierra Raven XT that has a serial port on it. I'm about to take the cell modem out of the loop entirely on this test box and see if I can get it to stop spitting communication errors.
Only issue is that I'll receive a reading of 0 from the box since no sensors are attached. I know i'm at least hitting the device. I'm getting Com Error -999. No Values Returned from Driver using ModbusTCP with PLCAddressValue 47000.EDIT: some progress. PLCAddressValue: 40000 returns no error, but a reading of 0.
I think i'm on the right track!!!. EDIT: some progress. PLCAddressValue: 40000 returns no error, but a reading of 0. I think i'm on the right track!!!.What data transfer function were you using when you read back '0' from address x40000? FC.3 or FC.4? Both request the content of analog output holding register(s).
However, FC.3 can request multiple registers at once. I generally stick with this FC because it's rare I only need one register and if I do it still works.Provide a screenshot of the software where you input the register address and it receives the register data back.There should be some documentation listing the register addresses of the analog data you are seeking. The Mercury Protocol Translator Board maps the Honeywell ERX items to Modbus registers. If you have access to the Protocol Translator Configuration software (for the Mercury), you can see what items are mapped to what registers.
![Series Series](https://cdn1-shop.mikroe.com/img/product/rs485-5v-click/rs485-5v-click-thickbox_default-12x.jpg)
For example, see page 31 here:Do some research on how the Modbus register tables are setup and how to interact with them. I am happy to continue helping in anyway possible. Are you just trying to implement data collection? Or install systems for operator stations? I wouldn't use advanced HMI if you're just trying to pull statistics on things related to equipment effectiveness or analytics.Theirs a lot of options for historical data if that's what you're looking for.
Even a few options for open source solutions. I can't recommend those at this time because I don't know how reliable they actually are, but I've been researching them lately if you would like any recommendations on the promising ones. Well if you just need historical data I'd recommend something like kepware.
If you want to go the free license or open source route I'd look at opc ua servers you can build a service around based on subscriptions to data points. If you know Javascript fairly well you could build a service using the NodeOPCUA library for node.js to collect the data and then use express.js to build a dashboard to consume the service as an api. I've been working on getting the time to build something like this myself in my free time. Opc UA provides an xml api, you basically just need something that can parse it and record it to a database and then provide a dashboard for it.AdvancedHMI can be pretty drop and play but a good understanding of c# or c would be recommended even for creating an operator station. That being said I wouldn't really recommend it for building a data collection service. You're mainly only needing a historian to build reports which kepware can do and should only cost you a few thousand if you're not recording data from a large number of devices.
GE also makes a historian that's pretty drag and drop but I don't believe its widely recommended. Needing a good understanding of c# or c is truly not necessary at all.
AdvancedHMI's back end is actually VB, but you do not need to go into the code to build a complete applications. You can think of it as equivalent to using Excel. Spreadsheets are created all the time without going to the VB script back end, but it is there if you want to do something advanced that is not built in.I just recently deployed a 15 page AdvancedHMI application with maybe over 100 buttons and indicators, multiple trend charts, and production count displays.
The complete application had a single line of VB code and it was something I used as a hidden way to close the application to get back to the desktop for updates. Another thought I'm having is if you just want to show something like average pump pressure on monitors near stations that is actually something advanced HMI would be capable of doing. Your plcs will need to be able to calculate the averages for you and you just provide a display that reads the tag value or a graph related to it. Really depends on the depth of system efficiency you want data on and how far back to determine whether advanced HMI will do what you need easily without investing too much time. One other thing that I just realized is you mentioned you're using modbus but didn't say it was modbusTCP, while modbus is over a serial connection. With most of the OPC servers I believe you'll need to be able to have hardware that can connect to them via either serial or to serial modems. It sounds like you have these which makes the situation less complicated.
I don't know about the compatibility with any specific product but I'd imagine most opc servers and historians have some support for modbus over serial connections or serial modems.Legacy software and hardware never dies in the industrial world it seems. If you're running everything from plcs or some other sort of industrial logic controller that has network services you really only need the ability to communicate with the individual devices over Ethernet with a service that has device drivers for the protocol it uses and then record either based on triggers when the data changes or at set intervals.5me and tracksys are two other paid services but they're pricy. I'd google IIoT data collection, oee data collection or automated industrial system data. See if this post helps any.Modbus addressing can be tricky because each vendor tends to have their own flavor. Make sure it is set to ModbusRTU (if using serial) and 16 bit register format. In the manual it looks like you have to map items to Modbus addresses. In the manual example, it shows starting with a offset of 7000.
In Modbus, Holding registers are in the range 4xxxx and start with 1. So if your device maps an item to holding register 7000, then a Modbus address would be 47001.
You have clicked on the '?' Button for search help.