PDA

Просмотр полной версии : ОВЕН-ские библиотеки



zilog
11.01.2007, 09:13
Подскажите плз, почему при подключении ваших фирменных библиотек Protocols.lib и PID_Regulators.lib, когда в online входишь выдает следующую ошибку:

Unresolved external POUs:
далее перечень из 24-х POU

:confused:

МИХАИЛ
11.01.2007, 09:19
Потому что библиотека PID_Regulators древняя как мумия Тутанхамона

zilog
11.01.2007, 09:41
А Protocols.lib тоже древняя ?
И интересно, что по этому поводу скажут "официальные лица" ?

P.S. Прошивка последняя 1.31

Филоненко Владислав
11.01.2007, 10:30
Protocols.lib попала в дистрибутив по ошибке!
Не вставляйте все возможные библиотеки в проект, если не знаете, для чего они.
Помимо всего прочего некоторые CoDeSys-овские библиотеки любят создавать скрытые задачи и выполнять кучу кода в них + расход памяти.
А некоторые неявно подключают др. библиотеки и при вставлении невинной библиотечки NetVarUDP отжирается 60 кб кода и куча ОЗУ

zilog
11.01.2007, 13:18
А как на счет PID_Regulators, как скоро можно ждать обновления ?

zilog
11.01.2007, 13:32
Подключил обновленную библиотеку PID_Regulators.lib (11544 байт), теперь меньше ругается, но всеже:

Unresolved external POU's:
PSI_MOIST
PSI_MOISTinit

как быть ?

Филоненко Владислав
11.01.2007, 14:02
Подключил обновленную библиотеку PID_Regulators.lib (11544 байт), теперь меньше ругается, но всеже:

Unresolved external POU's:
PSI_MOIST
PSI_MOISTinit

как быть ?
Позвольте поинтересоваться, какая у вас версия прошивки?

zilog
12.01.2007, 12:17
В PLC Browser спрашиваю PLCInfo, отвечает:

PLCInfo
PLC model MODEL PLC 150
Binary VERSION 1.31.0
Need Target version 1.31
Compiled: 15:54:20 Dec 1 2006
MAC 67:77:01:00:1C:A7
IP 10.0.6.10
GATE 10.0.6.1
MASK 255.255.0.0
Licence limited to 360 bytes
Current DAC
PIC version is 08

Филоненко Владислав
12.01.2007, 13:19
В PLC Browser спрашиваю PLCInfo, отвечает:

PLCInfo
PLC model MODEL PLC 150
Binary VERSION 1.31.0
Need Target version 1.31
Compiled: 15:54:20 Dec 1 2006
MAC 67:77:01:00:1C:A7
IP 10.0.6.10
GATE 10.0.6.1
MASK 255.255.0.0
Licence limited to 360 bytes
Current DAC
PIC version is 08

Господа, рабочая версия прошивки - 1.31.1, а не 1.31.0
Этим и вызвано ругательство библиотеки на отсутствие функций
расчета влажности. Они добавлены в версии 1.31.1

zilog
12.01.2007, 14:05
Извиняюсь, ступил :o
А где скачать можно прошивку 1.31.1 (а говорят уже 1.31.2 есть)?
На вашем сайте только 1.31.0 есть.

Chupakabra
12.01.2007, 14:25
Извиняюсь, ступил :o
А где скачать можно прошивку 1.31.1 (а говорят уже 1.31.2 есть)?
На вашем сайте только 1.31.0 есть.

Ваша неправда, вчера только скачал и перепрошил свой плк 1.31.1 :)

Николаев Андрей
12.01.2007, 14:37
Прошивка 1.31.1 выложена на сайте. Прошивку 1.31.2 могу выслать всем желающим на мыло. Надо, однако, понимать на сколько она нужна, потому что 1.31.2 от 1.31.1 отличается только возможностью работать в одной линии RS-485 по двум протоколам. Задача не тривиальная, и в 90% случаев не очень нужная.

zilog
13.01.2007, 12:48
Прошивка 1.31.1 выложена на сайте. Прошивку 1.31.2 могу выслать всем желающим на мыло. Надо, однако, понимать на сколько она нужна, потому что 1.31.2 от 1.31.1 отличается только возможностью работать в одной линии RS-485 по двум протоколам. Задача не тривиальная, и в 90% случаев не очень нужная.

Если не затруднит скинте 1.31.2 plz, на zilog_086@mail.ru

Nekit
13.01.2007, 22:59
И мне если можно astahovns@rambler.ru

Сергей Бондаренко
15.01.2007, 08:21
буду благодарен и я, как раз нужна эта возможность, плиз на sergey@kippribor.ru

Николаев Андрей
15.01.2007, 09:35
Прошивку 1.31.2 выслал на электронку.

SKTB_STO
05.03.2007, 10:35
Для задачи управления тиристорами требуется таймер с более высокой дискретностью (одна милисекунда маловато). Достаточная дискретность 100 мкс.
В сатндартных библиотеках CoDeSys все завязано со структурой TIME, а это не чаще 1 мс. В то же время ПЛК100 может обрабатывать входные импульсы с частотой до 10 кГц.
Если не существует 100 микросекундного таймера, тогда подскажите каким образом можно обеспечить необходимую точность выходного сигнала. ШИМ не подходит т.к. длительность импульса не меняется, меняется периодичность их следования.

Филоненко Владислав
05.03.2007, 11:04
Для задачи управления тиристорами требуется таймер с более высокой дискретностью (одна милисекунда маловато). Достаточная дискретность 100 мкс.
В сатндартных библиотеках CoDeSys все завязано со структурой TIME, а это не чаще 1 мс. В то же время ПЛК100 может обрабатывать входные импульсы с частотой до 10 кГц.
Если не существует 100 микросекундного таймера, тогда подскажите каким образом можно обеспечить необходимую точность выходного сигнала. ШИМ не подходит т.к. длительность импульса не меняется, меняется периодичность их следования.

Таймер 100мкс несомненно есть :) внутри ядра :)
Входы обрабатываются на таких частотах либо по прерыванию (счетчики и тригеры) либо поллингом без фильтрации (энкодер)
Однако цикл ПЛК не может быть раз в 100мкс. :( - ресурсов не хватает!

Купите БУСТ или его аналог и управляйте тиристорами на здоровье!

SKTB_STO
05.03.2007, 17:19
БУСТ не подходит. Время нарастания сигнала, если не ошибаюсь не менее 5с, да и в разных режимах необходимо действовать по разному.

Получить задержку менее 1мс, можно. Но существуют некоторые проблемки. С которыми, я надеюсь, вы поможете мне справиться.
Идея состоит в следующем. Необходимо вставить програмный код время выполнения которого будет значительно меньше дискреты в 1 мс.
Думаю наиболее удобно использовать цикл.
Поясню на примере. Допустим мне необходма задержка в 12.4мс. Я знаю, что 0.4мс время выполнения 10 пустых циклов. Тогда решение будет следующим.
n:=10
TONInst(IN:=var1,PT:=T#12ms);
var2:=TONInst.Q;
IF var2 THEN
FOR I:=1 TO n
END_FOR
var3:=
END_IF
А теперь вопросы.
1. Функция TON сразу начинает свою работу (по событию) или дожидается окончания милисекундного интервала?
2. Как можно расчитать необходимое количество пустых циклов?
3. Какова точность такой задержки если параллельно работают в ждущем режиме(срабатывают по событию) программы с одинаковым приоритетом?

SKTB_STO
06.03.2007, 04:53
сейчас посмотрел на шим, а ведь у него дискретность тоже 100мкс.
из этого следует, что внутри крутиться 100 микросекундный таймер.
помогите только к нему обратиться или написать обработчик прерываний от этого таймера. по сути дела у меня задача не сложнее шим, поэтому считаю что процессору это под силу. ведь шим регулирует задний фронт выходного сигнала, а мне нужна регулировка переднего фронта.

Филоненко Владислав
06.03.2007, 08:31
Добрый день!
Программную задержку получить не удастся с требуемой точностью, т.к. прерывания и пр. будут непредсказуемо влиять на ее длину.
Получить в программе ПЛК время с точностью больше 1 мс можно, воспользовавшись библиотекой SysLibTime:

VAR
fb_cut_time:CurTime;
systime: SysTime64;
END_VAR

fb_cut_time (SystemTime:=systime);
systime.ulLow - здесь врямя в мкс. Однако реальная точность в 100-х мкс.

В версии 2.0 (в ближайшее время) мы реализуем функцию вызова цикла ПЛК как можно чаще.
Тестирование даёт следующие результаты: (ПЛК100-24)

Режим работы частота вызова цикла ПЛК

Logout, ethernet физ. вынут
фильтрация входов откл. 3500Гц

Login через ethernet
фильтрация входов откл. 3100Гц

Logout ethernet физ. вынут
фильтрация входов (10). 3900Гц

Login через ethernet
фильтрация входов (10). 3500Гц


Подключение дополнительных модулей (мастера, slave, и пр.) как и сложная программа ПЛК будет снижать эту частоту.

SKTB_STO
06.03.2007, 17:34
Библиотека CurTime также имеет миллисекундный интервал (это есть в описании на эту библиотеку и проверял с помощью программы).
Как можно достать 100мкс?

Филоненко Владислав
07.03.2007, 10:09
не далее как вчера я извлекал методом, описанным выше время с точностью до 100 мкс.

SKTB_STO
07.03.2007, 12:58
Может конечно я чего и не понял. Давай попробуем разобраться вместе.
Ввел твой пример. Запустил. Переменная systime.ulLow периодически изменяется. Причем четвертый разряд меняется на одно значение за секунду (проверял с секундомером на 10 сек). Следовательно первый разряд миллисекунды. Может у меня прошивка старая, от этого такой кавардак. Прошивка 1.28

Филоненко Владислав
07.03.2007, 13:04
Ага, старая...