Otherwise known as “Motorola ACE3600 FIU ModbusTCP Communications – Wonderware Archestra DASMBTCP Configuration”. Let me paint the picture:
At the time I took on this project, online documentation and support for the Motorola ACE3600 was lacking. With what information I was able to scrounge up – and some trial and error- I was able to tie the system together. The information below should help to fill in the gaps others may encounter while taking on a similar task.
So here we go!
Setting up the ACE3600 for Modbus communication
I’m going to assume that you’re familiar enough with the STS programming software to upload and download.
1. Open up the Add-On Manager from the STS designer – located on the General tab of the RTU view.
2. Add a Modbus connection (if one doesn’t already exist) by clicking PLC2 to Master, then click on the diskette with an arrow, select the modbus file MODBUS.2M. Next, click on the Modbus link in the middle window and assign it to the desired sites on the right pane.
3. Next we set up the ports, since I’m using TCP, I just set up the ETH1 connection. Set the media to 10/100 BT and set the Address Type to Static Lan. On the right side you set up the IP address of the local unit, gateway, and DNS.
4. Click on the Protocols button, and set it to Modbus Slave (PLC2) – Since we set up the Modbus driver previously to use the PLC2 connection.
5. Download the application to the ACE3600.
Configuring Wonderware to connect to ACE3600
1. I chose to use the DASMBTCP driver – which I installed. I added a new TCPIP port and named it, leaving the default port.
2. Added a new type – ModbusBridge and named it. Added in the IP address of the unit in the field (Cell modem’s WAN IP).
3. Under the modbus bridge I added a new device – ModbusPLCRS and named it. I believe the defaults will work, the only thing that had to be done was to check the box for “Use Zero Based Addressing”. If you don’t check that box, you won’t return the correct register.
4. Added a new topic and named it.
5. Finally, create a tag in Wonderware, I’ve set the data type of the tag as an I/O Real. This tag is going to read the value that is in the register of the ACE3600. In my example, I’m reading the values out of a table that has the un-scaled value; I’ve added scaling in the EU and Raw fields. Set the access name the same thing as the topic name and under “item” put in the register that you’re looking to poll.
When you run the application, it will put the tag on scan and you’ll be able to see it under the diagnostics for the driver (and even see the current value) – To adjust the poll times: under the device groups tab where the topic name is, you can adjust the value there.
ACE3600 Modbus Addressing
The final piece to the puzzle is how the values are addressed – there isn’t a set of registers that you populate data into (like you’re probably used to). You basically look at a “Table ID”, Column number, and the Row number to calculate the MB address. In the STS software, you can open up the project by clicking “Application Programmer” on the general tab of the STS designer. To view the tables click on the database tab at the bottom of the tree. Here you can expand the user defined table and view the data; if you notice there’s a number at the end of the table name, that’s the ID that you’re looking for. If you look below, the cell I’m going to be getting data from is in red.
The formula for finding data is: (2048*Table ID) + (256*Column) + (Row+1). For my example it will be (2048*11) + (256*0) + (11+1) = 22540. This is the register associated with that data point. If you also notice I added another column – this was mostly so I could just copy and paste these addresses into the Wonderware tags. The full address (using 6 digits) gets 300,000 added to it to make it 322540.
Why? In Modbus there’s 5 digit and 6 digit addressing, and the registers we ultimately need to read start with a 3 – even though they’re not technically input registers (for more on that, here’s a primer). So for 6 digit you have to put a 3 in the front, which is the same thing as adding 300,000 to the 5 bit address. This is the value that would produce data from that specific cell in the ACE3600 for Wonderware to display.
The Pin out for the connector is not a standard connection – you’re going to need to buy the Motorola Cable, or build your own (I built my own). The pin out is:
RTU Pin (RJ-45) 9 Pin D-Sub
1 ———————————————– 2
2 ———————————————– 3
3 ———————————————– 4
4 ———————————————– 5
5 ———————————————– 7
6 ———————————————– 1
7 ———————————————– 6
8 ———————————————– 8
Not Avail. ———————————— 9
I used a straight through ethernet cable, but be aware that if you use a crossover it will most likely not work (unless you account for the crossover). Also, when you look at your station configuration, you can see the baud rates are assigned. Be sure to set your communications up properly! From the Menu: Setup>Comm. Setup, you get a dialog box, just set the com port to the correct address and match the data speed to the port you’re connected on. I was connecting in through the SI2 connection, so I set my speed to 115200.
Through my trials, I had some issues with using my laptop’s on-board serial port. I was able to toggle the check box “Protect third-party protocol over MDLC port” and it would take off and download/upload, I started using a USB to Serial adapter which fixed that problem.
I hope this guide is beneficial in helping set up one of the ACE3600’s for Modbus communication the first time.
Contact the Author
If you have any comments or questions about the material, please do not hesitate to contact me through the comment section. I would love to hear your answers to the questions as well.