Any more thoughts on doing native drivers for Automation Direct PLCs. The Do-More line is pretty powerful and the price point is also a plus. I know Host is willing. Let me know what can be done to get the discussion rolling with the right people!
Is there a spec for whatever protocol “native” is for these devices?
AFAIK they all do Modbus and you can just use our Modbus driver.
Yes but Modbus is slow and mapping is just one extra step. I am messing with the BRX line and trying to get MQTT setup, but have not been successful thus far. It would be nice just to be able to map directly to the do-more memory locations with a direct driver.
But I’ll take your answer as Ignition isn’t interested at this time…
That’s not necessarily true, but I’ve never seen any documentation for another “native” protocol for these.
Are you on the Host Engineering forums by chance? It looks like Host is willing to make this happen…
I went ahead and posted in that thread.
That’s awesome Kevin! And I finally got the MQTT working…on to more trials and testing!
@dwhite I have a brx PLC sitting in my office right now. I’d be interested in knowing if you’d be willing to post anything on using MQTT with it, or maybe a link. Thanks
@dkhayes117 What would you like to know? First I would suggest downloading Do-More Designer version 2.5 if you have not done so already. Version 2.5 has some expanded instruction sets (JSONBUILD and JSONPARSE) that allow you to do a little less work on both sides (BRX and IA). Then you need to make sure you have the Cirrus Link Modules added to your Ignition Gateway. Let me know if you have all that ready or if you need assistance setting that up.
You can also leverage any other MQTT broker as well. I was successful in setting up Mosquitto on my machine as well.
I have do-more 2.5 already, and I have the trial version of the Cirrus Link modules installed. I will play around with it some later, and if I run into any snags I will give you a holler if you don’t mind. The question I have right now is if I want to monitor an output with mqtt, do I have to setup the instruction on the rung, or can you “map” the outputs to a topic like you would with Modbus (if that makes any sense at all)?
Right now you have to do it with the instruction. In DMD you will need to do the following (this assumes that you have everything working on a local machine, Inductive, Broker and Do-More):
- Select Configure (XY Button by Devices) in DMD
- Highlight device configuration (on the left side of the pop up window)
- Select New Device Pushbutton (right side of window)
- Select MQTT Client >> Then Okay
- Device Name can be anything as long as it follows DMD nickname convention I believe
- Select Use IP Address and enter 127.0.0.1 (or DNS lookup and type localhost)
- You can leave Other Settings default for now
- Start with a clean ladder (just for testing) and add the following:
- Rung 1 - ST1 (always on contact) and JSONBUILD (instruction)
- Rung 2 - ST1 and MQTTPUB
Setup JSONBUILD Instruction with the following information:
- Record type = object
- Add and then fill out (Field Name = YourTagName (this can be anything you want Tag1, MyTag, etc and then select a type and memory location from Do-More, Save)
- Add another record (select String and memory location SS1)
- For JSON output record use string structure and use SS0
Setup MQTTPUB Instruction with the following information:
- Select continuous on Power Flow (you can do 1 sec interval)
- Add optional topic “DoMoreTags/” (needs to include double quotes as shown, but you can replace DoMoreTags with something more meaningful if required
- Either insert of double click item 1 and edit topic (select Use common Option Topic) fill in topic with “jsontags/” and payload = SS0 (output from your JSONBUILD)
In data view add SS0, SS1 and whatever you inserted as your first entry of your JSONBUILD…could be D0 (integer), R0 (float).
You can then connect to the Do-More Sim and download the program. Next we can setup Ignition.
To setup the Ignition Gateway, complete the following:
- Start the gateway and then go to the gateway URL (Typically http://localhost:8088/main) or use the link in the gateway utility
- Select configure and login with your username and password (if this is the IA trial then username = admin and password = password)
- You said you already had the modules installed, so select MQTT Distributor/Settings
- Make sure Enable MQTT Server is checked
- Enable Non-TLS connection (for now)
- Scroll all the way day and select advance settings and check enable Anonymous
Next go to the MQTT Engine/Settings
On the general tab
- Ensure enable MQTT Engine is checked
- Primary Host ID should be localhost in your case
On the Servers Tab
- Charlot SCADA should be connected at this point (this will be your broker)
On the Namespace Tab
- Select Custom
- Create new Custom Namespace
- For Name (you can type whatever you would like…ie DoMore)
- Subscription type DoMoreTags/# (this should match your topic in the PLC see MQTTPUB step 2)
- Ensure Parse the payload as a JSON string is checked
Once all those changes have been made and saved you can start the designer
Once you have the designer open go to the tag browser (left side of the screen in the middle)
Expand All Providers
Expand MQTT Engine (you should not see your tags at this time)
Go back to Do-More Designer and connect to the SIM-PLC and download your program
Run the SIM
Go back to the IA Designer and refresh your tags in the tag browser
Expand All Providers
Expand MQTT Engine (you should now see your folder DoMoreTags which you can expand and see your values coming from the PLC)
Awesome, thanks for taking the time to list your steps