hi,
package com.tt.test;
import java.net.UnknownHostException;
import java.util.concurrent.Executors;
import org.jinterop.dcom.common.JIException;
import org.jinterop.dcom.common.JISystem;
import org.jinterop.dcom.core.JIVariant;
import org.openscada.opc.lib.common.ConnectionInformation;
import org.openscada.opc.lib.common.NotConnectedException;
import org.openscada.opc.lib.da.AccessBase;
import org.openscada.opc.lib.da.AddFailedException;
import org.openscada.opc.lib.da.Async20Access;
import org.openscada.opc.lib.da.AutoReconnectController;
import org.openscada.opc.lib.da.DataCallback;
import org.openscada.opc.lib.da.DuplicateGroupException;
import org.openscada.opc.lib.da.Group;
import org.openscada.opc.lib.da.Item;
import org.openscada.opc.lib.da.ItemState;
import org.openscada.opc.lib.da.Server;
public class SCADA {
public static void main(String[] args){
AutoReconnectController autos = null;
try {
JISystem.setAutoRegisteration(true);
ConnectionInformation ci = new ConnectionInformation();
ci.setDomain("");
//ci.setProgId("Kepware.KEPServerEX.V5");//Hollysys.MacsOPCSvr.1
ci.setClsid("b3af0bf6-4c0c-4804-a122-6f3b160f4397");
ci.setUser("Administrator");
ci.setPassword("123");//esd.@2012
final Server s = new Server(ci,Executors.newSingleThreadScheduledExecutor());
autos = new AutoReconnectController(s);
autos.connect();Thread.sleep(100);
// dumpTree(s.getTreeBrowser().browse(),0);
Group group = s.addGroup("group");
group.setActive(true);
// final Item item = group.addItem("Bucket Brigade.String");
final Item item = group.addItem("Channel1.Device1.Tag1");// simatic S7 Group1.PI_3009
// final Item item = group.addItem("Random.String");
item.setActive(true);
Thread.sleep(1000);
System.out.println(":"+item.read(false).getValue());
JIVariant value = JIVariant.makeVariant(new Integer(777));
item.write(value);
//
final AccessBase access = new Async20Access(s,6000,false);
access.addItem ( "Channel1.Device1.Tag1",new DataCallback() {
@Override
public void changed(Item item, ItemState state) {
System.out.println("-----------11-------"+state);
}
});
access.bind ();
Thread.sleep(10*1000);
access.unbind();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (JIException e) {
e.printStackTrace();
} catch (NotConnectedException e) {
e.printStackTrace();
} catch (DuplicateGroupException e) {
e.printStackTrace();
} catch (AddFailedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}finally{
autos.disconnect();
}
}
}
Execution error
org.jinterop.dcom.common.JIRuntimeException: Message not found for errorCode: 0x0004000D
How to solve?