
Сообщение от
capzap
Т.е. Вы так прочли что не заметили в конструкции for оператор step?
Вам не попадалось что переменные регистронезависимы, нельзя в коде объявить две переменные с одним именем но в разных регистрах?
Вам не попадалось использование такого слова как АТ %?
Мы про Owen Logic?

Сообщение от
Королёв Кирилл
Сейчас работаем над доработкой документации на Owen Logic. Отразим эти моменты в следующих версиях справки.
А вы имели CoDeSys, вероятно:
Код:
VAR_GLOBAL (* старшим байтом вперёд как в ПР200 - поменять в <Universal ModBUS device> Trace_mode на Native *)
(* DWORD не работает, только WORD 65536 иногда по ошибке таки прописывается, но не работает *)
TACK, mSek, mSek0, mSek1, mSek2, mSek3, mSek4 :WORD; (* многозадачность *)
St0int, St1int: WORD; (* счёт внутри прерываний *)
INTset:BOOL; (* рулить прерыванием *) INTinit:BOOL:=TRUE; (* Флаг для инициализации прерывания таймера при запуске основной программы *)
Po,PoZ, Pk,PkZ, Io,IoZ, Ik,IkZ :REAL;
(*In1 AT %IX0.0 : BOOL; (* именование I/O как переменны х *)
In2 AT %IX0.1 : BOOL;
In3 AT %IX0.2 : BOOL; (* для ПЛК-160 - нет в ПЛК-110-30м *)
In4 AT %IX0.3 : BOOL; (* для ПЛК-160 - нет в ПЛК-110-30м *) *)
(* замена при прерывании *) In01,In02,In03,In04 : BOOL:=0; (* дублирование при быстрых входах *)
In1, In2, In3, In4 : BOOL:=0; (* дублирование при быстрых входах *)
vIn1,fIn1, vIn2,fIn2, vIn3,fIn3 :WORD:=0; (* Счёт для входов *) In1_4: BYTE; (* входная маска для SysPortIn(0); *)
Sek: WORD; (* секунды программные *) tSTOP, tSTART: BOOL; (* секундомер *)
In5 AT %IX1.0.0 : BOOL; kAlarm AT %IX1.0.0: BOOL; (* дублировать входы *)
In6 AT %IX1.0.1 : BOOL; kStop AT %IX1.0.1: BOOL;
In7 AT %IX1.0.2 : BOOL; kStart AT %IX1.0.2: BOOL;
In8 AT %IX1.0.3 : BOOL; kPause AT %IX1.0.3: BOOL;
In9 AT %IX1.0.4 : BOOL;
In10 AT %IX1.0.5 : BOOL;
In11 AT %IX1.0.6 : BOOL;
In12 AT %IX1.0.7 : BOOL;
In13 AT %IX1.1.0 : BOOL;
In14 AT %IX1.1.1 : BOOL;
In15 AT %IX1.1.2 : BOOL;
In16 AT %IX1.1.3 : BOOL;
OUT1 AT %QX2.0 : BOOL; (* релейные выходы *)
OUT2 AT %QX2.1 : BOOL;
OUT3 AT %QX2.2 : BOOL;
OUT4 AT %QX2.3 : BOOL;
OUT5 AT %QX3.0.0 : BOOL; (* OutADC AT %QX3.0.0 : BOOL; дублировать выходы *)
OUT6 AT %QX3.0.1 : BOOL; (* Out500 AT %QX3.0.1 : BOOL; *)
OUT7 AT %QX3.0.2 : BOOL; (* Out380 AT %QX3.0.2 : BOOL; *)
OUT8 AT %QX3.0.3 : BOOL; OutZUM AT %QX3.0.3 : BOOL;
OUT9 AT %QX3.0.4 : BOOL; (* Out2000 AT %QX3.0.4 : BOOL; *)
OUT10 AT %QX3.0.5 : BOOL; (* AlarmSV AT %QX3.0.5 : BOOL; *)
OUT11 AT %QX3.0.6 : BOOL; (* Out100 AT %QX3.0.3 : BOOL; *)
OUT12 AT %QX3.0.7 : BOOL;
InR AT %IX6.0 : BOOL; ResKEY AT %IX6.0 : BOOL; (* ПЛПK110 тумблер Работа/СТОП/СБРОС *)
ZUM0 AT %QX7.0 : BOOL; (* утробный звук *)
ADC1 AT %IR4.0 : REAL; (* стр 80(87) (старший байт переменной типа REAL) устанавливается специальное значение соответствующее исключительной ситуации *)
ADC2 AT %IR4.1 : REAL; (* результаты измерения заведомо не верны – 0x F1 *)
ADC3 AT %IR4.2 : REAL; (* результаты измерения не готовы – 0x F6 *)
ADC4 AT %IR4.3 : REAL; (* сигнал на входе больше возможного – 0x FA *)
ADC5 AT %IR4.4 : REAL; (* сигнал на входе меньше возможного – 0x FB *)
ADC6 AT %IR4.5 : REAL; (* перегрузка в канале измерения тока – 0x FС *)
ADC7 AT %IR4.6 : REAL; (* обрыв датчика в канале измерения напряжения – 0x FD *)
ADC8 AT %IR4.7 : REAL;
AdcIn AT %IW4.8 :DWORD; (* AI real time (10ms) *)
(* Кроме того, в переменной «Status» отображаются следующие отказы модуля аналогового ввода:
? бит 2 – нет конфигурирования аналоговых входов; ? бит 5 – отказ FLASH-памяти dsPIC33;
? биты 8...11 – отказы автокалибровки аналоговых входов ComI, RefI, ComU, RefU. *)
DAC1 AT %QR5.0 : REAL; (* с периодом 50 мс выводятся в ЦАП *)
DAC2 AT %QR5.1 : REAL;
DAC3 AT %QR5.2 : REAL;
DAC4 AT %QR5.3 : REAL;
(* --- удалённое управление ПР200 4 шт --- сетевые переменные *)
(* объявить только в глобальных невозможно - как группы объявлять? *)
(* ресурсы > глобальные переменные (задать имя) > свойства объекта > связать с файлом (задать имя) > экспортировать *)
ADCa1 AT %QD8.1.0.0 :REAL; (* АЦП1 первый ПР200 512 0x03 *)
ADCb1 AT %QD8.1.1.0 :REAL; (* АЦП2 первый ПР200 514 0x03 *)
ADCc1 AT %QD8.1.2.0 :REAL; (* АЦП3 первый ПР200 516 0x03 *)
ADC4P1 AT %QD8.1.3.0 :REAL; (* АЦП3 первый ПР200 518 0x03 *)
Inp1P1 AT %QW8.1.18.0 :WORD; (* ПР200-1 вход 1 registet 534 *)
Inp2P1 AT %QW8.1.19.0 :WORD; (* ПР200-1 вход 2 registet 535 *)
Inp3P1 AT %QW8.1.20.0 :WORD; (* ПР200-1 вход 3 registet 536 *)
Inp4P1 AT %QW8.1.21.0 :WORD; (* ПР200-1 вход 4 registet 537 *)
Inp5P1 AT %QW8.1.22.0 :WORD; (* ПР200-1 вход 5 registet 538 *)
Inp6P1 AT %QW8.1.23.0 :WORD; (* ПР200-1 вход 6 registet 539 *)
Inp7P1 AT %QW8.1.24.0 :WORD; (* ПР200-1 вход 7 registet 540 *)
Inp8P1 AT %QW8.1.25.0 :WORD; (* ПР200-1 вход 8 registet 541 *)
Out1P1 AT %QW8.1.4.0 :WORD; (* ПР200-1 вых 1 registet 520 0x06 *)
Out2P1 AT %QW8.1.5.0 :WORD; (* ПР200-1 вых 2 registet 521 *)
Out3P1 AT %QW8.1.6.0 :WORD; (* ПР200-1 вых 3 registet 522 *)
Out4P1 AT %QW8.1.7.0 :WORD; (* ПР200-1 вых 4 registet 523 *)
Out5P1 AT %QW8.1.8.0 :WORD; (* ПР200-1 вых 5 registet 524 *)
Out6P1 AT %QW8.1.9.0 :WORD; (* ПР200-1 вых 6 registet 525 *)
Out7P1 AT %QW8.1.10.0 :WORD; (* ПР200-1 вых 7 registet 526 *)
Out8P1 AT %QW8.1.11.0 :WORD; (* ПР200-1 вых 8 registet 527 *)
OutSVz1 AT %QW8.1.12.0 :WORD; (* ПР200-1 вых SVz registet 528 зелёный *)
OutSVk1 AT %QW8.1.13.0 :WORD; (* ПР200-1 вых SVk registet 529 красный *)
OutK1P1 AT %QW8.1.14.0 :WORD; (* ПР200-1 вых K1 registet 530 открытый колектор *)
OutK2P1 AT %QW8.1.15.0 :WORD; (* ПР200-1 вых K2 registet 531 открытый колектор *)
OutK3P1 AT %QW8.1.16.0 :WORD; (* ПР200-1 вых K3 registet 532 открытый колектор *)
OutK4P1 AT %QW8.1.17.0 :WORD; (* ПР200-1 вых K4 registet 533 открытый колектор *)
(* fAIR AT %QB10.1.0 :STRING;
fNOMER AT %QD10.2.0 :REAL;
fITOG AT %QB10.3.0 :STRING;
fFIO AT %QB10.13.0 :STRING:='$20'; *)
END_VAR