написал на Delphi програмку, читающую и меняющую значения выходода контроллера ПЛК 100, подключение через OPC Codesys
var
V : variant;
begin
V := CreateOleObject('OPC.Automation'); //создаем OLE объект
V.Connect('CoDeSys.OPC.02'); //подключаемся
V.OPCGroups.Add('Group1'); //добавляем группу
V.OPCGroups.GetOPCGroup('Group1').OPCItems.AddItem ('PLC1:.out1',
1);//добавляем переменную
//читаем ее состояние
if V.OPCGroups.GetOPCGroup('Group1').OPCItems.Item('P LC1:.out1').Value=false
then ShowMessage('выход out1 выключен')
else ShowMessage('выход out1 ВКЛЮЧЕН!!!');
end;
почему-то правильное состояние выхода определяется только если выход включен или выключен в данной программе, если значение было изменено, например в CodeSys - состояние определяется неправильно.
Примечательно, что похожий пример, но реализованный через компонент dOPC функционирует исправно.
Может кто знает в чем проблема?