Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: dima_k от 11 Октября 2020, 15:59:05

Название: Проблема в обмене с OPC сервером
Отправлено: dima_k от 11 Октября 2020, 15:59:05
   кусок кода

   IF (NOT Regim2.9) AND (NOT StopDosing) AND RunDosing THEN   //остановка дозирования со скады
//должно стать
//StopDosing:=TRUE;
//Regim.9:=1;
//StopDosing - переменная в контроллере
//Regim - переменная с конкретным адресом, в OPC сервере описана как RW   
            IF (NOT Regim2.9) AND (NOT StopDosing) AND RunDosing THEN   //остановка дозирования со скады
         StopDosing:=TRUE;
         Regim.9:=1;
      END_IF
      IF NOT StopDosing THEN
         Regim.9:=0;
      END_IF
//здесь StopDosing=true, Regim.9=0, хотя должно быть Regim.9=1
//и это происходит часто с переменными, активно используемыми для общения со скадой.
//надо со скады байт передать в контроллер - со второго, третьего раза проходит
//c контроллера в скаду биты доходят как хотят (то дойдет изменение, то нет)
// OPC сервер используется MasterOPC Universal Modbus Server.
//попробовал для одной критичной переменной использовать бесплатный arOPC. Повторяю - для одной. Все остальные работали через MasterOPC.
Никакого положительного результата. Биты в слове передаются не стабильно
      IF StopDosing AND (NOT Regim.9) THEN //если в скаде решили прервать окончание цикла
         RunDosing:=FALSE;
         StopDosing:=FALSE;
         StopDosingPred:=FALSE;
         Regim2.9:=0;
      END_IF

самое главное - правильная передача происходит в 90%
т.е. чаще всего все работает правильно, но иногда изменения не доходят

ярким примером является случай, когда со скады устанавливается бит, и он не доходит до контроллера

Название: Re: Проблема в обмене с OPC сервером
Отправлено: Timothy Clement от 12 Октября 2020, 12:08:25


Скорее всего с ОРС-сервером все нормально, если значение не устанавливается, значит оно сбрасывается в другом месте в ПЛК или в скриптах самой скады