I’ve been following the Ignition forums pretty close, and it seems that some of you have been able to set up and communicate with your compactlogix controllers. I, however, have not been able to communicate. I inquired about drivers for this device, and Vannessa suggested I post here, as some people have been successful, and some have not.
I am currently running Ignition on a linux machine (ubuntu), and the test device that I am attempting to connect to is an AB CompactLogix L35E (1769-L35E). Setup looks like it is pretty straight forward (as one gentleman pointed out in an earlier post), but I’ll go through it step by step here just in case I missed something.
I created a test project, and have my database (mysql) setup and functioning properly. The Controller has a test program running on it with a few tags for testing purposes, and it is functioning properly. Now, I go to the configuration page to set up the device under OPC-UA>Devices>Add A Device. I expand Allen-Bradley, then Ethernet, and select ControlLogix and click Next. I then enter a name for the device, in this case, CLTest, and set the device IP address which is 192.0.0.242 and leave the rest of the settings at their default values and click save. So far so good. In the Devices window, it shows the device that I just created, and that it is connected. I then go to the OPC-UA status page, and again, everything is connected.
So, now with everything set up and working properly, I should be able to open the Designer and begin. This is where the trouble begins.
I launch the designer, and open the test project. When I select the Tags folder, and then add OPC tag, the add tag dialog opens, and I then browse for a tag using the default IgnitionOPCUA. I am able to drill down to the device that I created, IgnitionOPCUA>Devices>[CLTest}>MainProgram, and there my tags on the controller are listed. So, I then select a test tag that I have created, that is an INT data type, and click OK.
As soon as I click OK, the tag is added, the compactlogix controller encounters a Major Recoverable Fault, and the Ignition console imeadiately starts scrolling “[CLTEST] Read Request failed due to TIMEOUT” (which is of no surprise, because the controller has faulted thus resulting in comms loss everywhere). The controller comms then come back online, and the ignition console displays the following:
[quote]jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:15,417]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | ERROR [ControlLogixDriver ] [10:19:15,657]: [CLTest] Connection lost due to IOException.
jvm 1 | java.io.IOException: Connection reset by peer
jvm 1 | at sun.nio.ch.FileDispatcher.read0(Native Method)
jvm 1 | at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
jvm 1 | at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
jvm 1 | at sun.nio.ch.IOUtil.read(IOUtil.java:200)
jvm 1 | at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager.readFromChannel(AbstractEthernetDriver.java:402)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager.run(AbstractEthernetDriver.java:527)
jvm 1 | at java.lang.Thread.run(Thread.java:619)
jvm 1 | Exception in thread “EthernetDriverTP-thread-30” java.util.MissingFormatArgumentException: Format specifier ‘s’
jvm 1 | at java.util.Formatter.format(Formatter.java:2432)
jvm 1 | at java.util.Formatter.format(Formatter.java:2367)
jvm 1 | at java.lang.String.format(String.java:2769)
jvm 1 | at com.inductiveautomation.xopc.drivers.allenbradley.requests.ABControlLogixBrowseRequest.receiveMessage(ABControlLogixBrowseRequest.java:141)
jvm 1 | at com.inductiveautomation.xopc.drivers.allenbradley.requests.ABControlLogixBrowseRequest.receiveMessage(ABControlLogixBrowseRequest.java:35)
jvm 1 | at com.inductiveautomation.xopc.driver.api.RequestSequence.receiveMessage(RequestSequence.java:49)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractDriver.messageArrived(AbstractDriver.java:652)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver.messageArrived(AbstractEthernetDriver.java:215)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager$DeliverMessage.run(AbstractEthernetDriver.java:564)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
jvm 1 | at java.lang.Thread.run(Thread.java:619)
jvm 1 | WARN [ABControlLogixBrowseRequest ] [10:19:17,671]: [CLTest] Browse Request request failed due to TIMEOUT
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:19,933]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:22,188]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:24,441]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:26,716]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:28,971]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:31,222]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:33,478]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:35,731]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:37,985]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:40,236]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:42,488]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:44,739]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:46,991]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:49,243]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:51,494]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:53,749]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:56,002]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:19:58,254]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:00,510]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:02,783]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:05,038]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:07,296]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:09,551]: [CLTest] Read Request failed due to TIMEOUT.
jvm 1 | ERROR [ControlLogixDriver ] [10:20:09,741]: [CLTest] Connection lost due to IOException.
jvm 1 | java.io.IOException: Connection reset by peer
jvm 1 | at sun.nio.ch.FileDispatcher.read0(Native Method)
jvm 1 | at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
jvm 1 | at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)
jvm 1 | at sun.nio.ch.IOUtil.read(IOUtil.java:200)
jvm 1 | at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager.readFromChannel(AbstractEthernetDriver.java:402)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager.run(AbstractEthernetDriver.java:527)
jvm 1 | at java.lang.Thread.run(Thread.java:619)
jvm 1 | Exception in thread “EthernetDriverTP-thread-31” java.util.MissingFormatArgumentException: Format specifier ‘s’
jvm 1 | at java.util.Formatter.format(Formatter.java:2432)
jvm 1 | at java.util.Formatter.format(Formatter.java:2367)
jvm 1 | at java.lang.String.format(String.java:2769)
jvm 1 | at com.inductiveautomation.xopc.drivers.allenbradley.requests.ABControlLogixBrowseRequest.receiveMessage(ABControlLogixBrowseRequest.java:141)
jvm 1 | at com.inductiveautomation.xopc.drivers.allenbradley.requests.ABControlLogixBrowseRequest.receiveMessage(ABControlLogixBrowseRequest.java:35)
jvm 1 | at com.inductiveautomation.xopc.driver.api.RequestSequence.receiveMessage(RequestSequence.java:49)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractDriver.messageArrived(AbstractDriver.java:652)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver.messageArrived(AbstractEthernetDriver.java:215)
jvm 1 | at com.inductiveautomation.xopc.driver.api.AbstractEthernetDriver$SelectionManager$DeliverMessage.run(AbstractEthernetDriver.java:564)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
jvm 1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
jvm 1 | at java.lang.Thread.run(Thread.java:619)
jvm 1 | WARN [ABControlLogixBrowseRequest ] [10:20:11,832]: [CLTest] Browse Request request failed due to TIMEOUT
jvm 1 | WARN [ABControlLogixReadRequest ] [10:20:14,111]: [CLTest] Read Request failed due to TIMEOUT.
[/quote]
And it will keep cycling through until I remove the device.
On the controller i get the following:
[quote]12/31/1997 7:00:00 PM
(Type 01) Power-up Fault
(Code 60) Non-recoverable Fault./quote]
Note the date and time are wrong, this is because when the fault occurs, it completely wipes out all controller settings and the loaded program.
Any suggestions/help would be greatly appreciated.