Просмотр полной версии : ОВЕН-ские библиотеки
Подскажите плз, почему при подключении ваших фирменных библиотек Protocols.lib и PID_Regulators.lib, когда в online входишь выдает следующую ошибку:
Unresolved external POUs:
далее перечень из 24-х POU
:confused:
Потому что библиотека PID_Regulators древняя как мумия Тутанхамона
А Protocols.lib тоже древняя ?
И интересно, что по этому поводу скажут "официальные лица" ?
P.S. Прошивка последняя 1.31
Филоненко Владислав
11.01.2007, 10:30
Protocols.lib попала в дистрибутив по ошибке!
Не вставляйте все возможные библиотеки в проект, если не знаете, для чего они.
Помимо всего прочего некоторые CoDeSys-овские библиотеки любят создавать скрытые задачи и выполнять кучу кода в них + расход памяти.
А некоторые неявно подключают др. библиотеки и при вставлении невинной библиотечки NetVarUDP отжирается 60 кб кода и куча ОЗУ
А как на счет PID_Regulators, как скоро можно ждать обновления ?
Подключил обновленную библиотеку 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
как быть ?
Позвольте поинтересоваться, какая у вас версия прошивки?
В 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
Извиняюсь, ступил :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% случаев не очень нужная.
Прошивка 1.31.1 выложена на сайте. Прошивку 1.31.2 могу выслать всем желающим на мыло. Надо, однако, понимать на сколько она нужна, потому что 1.31.2 от 1.31.1 отличается только возможностью работать в одной линии RS-485 по двум протоколам. Задача не тривиальная, и в 90% случаев не очень нужная.
Если не затруднит скинте 1.31.2 plz, на zilog_086@mail.ru
И мне если можно 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
Ага, старая...
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot