Доброго дня всем! Команда MUL преобразовывает только 99 сек. А если забиваешь 180 сек(=3 мин) то получается какая то неразбериха!!Вложение 21300
Вид для печати
Доброго дня всем! Команда MUL преобразовывает только 99 сек. А если забиваешь 180 сек(=3 мин) то получается какая то неразбериха!!Вложение 21300
Элементарно, Ватсон...
Я полагаю, что hmi_t9 это переменная из панели. Скорей всего тип у неё WORD.
Тогда 180*1000=180 000, а в переменную WORD "помещается" всего 65 535, или после преобразования 65,535 сек = 1мин 5сек с хвостиком.:rolleyes:
Происходит переполнение разрядной сетки, и от 180 000 (2BF20hex) остается только BF20hex=48928dec.
Так, что в начале нужно hmi_t9 преобразовать в DWORD, а уж затем умножать на 1000, а уж тем более на 10 000.:p
Вложение 21303
Все работает!!Спасибо ОГРОМНОЕ ЧЕЛОВЕЧЕСКОЕ за помощь!!
Вопросик такой появился.
А можно ли в языке ST в CodeSys использовать фиксацию выходов?
Set/Reset имею ввиду. Не могу разобраться с синтаксисом.
Подскажите
Доброго времени суток всем!
Люди добрые, помогите пожалуйста разобраться.
Есть задача, организовать SNMP-протокол, ПЛК 110-30 (менеджер - обрабатывает Trap`ы) <-> Коммутатор (агент - кидает Trap`ы). С работой сокетов пока не знаком. Думаю начать работу с изучения библиотека SysLibSockets.lib. Есть документ описывающий данную библиотеку, но не могу найти последовательность действий работы передачи данных.
Например (чисто мое представление на данный момент):
1. Инициализация порта/сокета (вызов функций: ... , пример);
2. Создание соединения (функция... , пример);
3. Посылка пакета (функция... , пример);
4. Прием пакета (функция... , пример);
5. Закрытие соединения (функция... , пример).
Возможно:
1. Функция: SysSockAccept, пример: ?
2. Функция: SysSockConnect, пример: ?
3. Функция: SysSockSend, пример: ?
4. Функция: SysSockRecv, пример: ?
5. Функция: SysSockClose, пример: ?
Подкиньте пожалуйста пример простенький приема передачи с применением библиотеки SysLibSockets.lib.
Заранее очень благодарен!
Добрый вечер! Я написал проект в CoDeSys V2.3 для ПЛК 110-60, сразу заливаю программу в ПЛК нажимая на кнопки "Подключение" потом жму "Создание загрузочного проекта" и "Загрузка исходных текстов" вот что показывает сразу Statistic Вложение 21452Это нормальное время цыкала 5мс. но как перезагрузишь ПЛК время показывает совсем другое Вложение 21453 это уже критично, я менял разное время цыкла но нечего не меняется...
Почему так получается?
Как это можно исправит?
Что я не так делаю?
В первом случае в конце отсутствует "жму Старт(F5)" по этому ПЛК просто "курит", программа-то не запущена.
Во втором случае программа автоматически стартует после включения ПЛК. Тут уже можно и на статистику посмотреть. И что мы видим 52х100=5200 мкс= 5,2 мс. Для Вас 5 мс уже критично? Не верю.
А на счет "я менял разное время цыкла но нечего не меняется...". Посмотрите на "CPU is overloaded, optimize your programm or increase PLC cycle", у Вас же перегрузка процессора. И свободного времени у процессора, следующая переменная "Free processor resourse mks in 1 cycle", всего 1 мкс.
Не знаю куда Вы там меняли время цикла, но его(MinCycleLenght) нужно увеличивать, до тех пор, пока не погаснет "CPU is overloaded, optimize your programm or increase PLC cycle". Или задать MinCycleLenght равным 0.
Старт F5 В первом случаи был нажат :)
А время цыкла было указанно в (MinCycleLenght) там у меня стоит 5ms. Вложение 21455
Время цыклы важно так как ситоят 11счётчиков и они считают примерно около 100Гц. Это расходомеры жидкости (Линия розлива жидкости) http://liniirozliva.ru
обратите внимание на нижние поля среды разработки, в первом случае ЗАПУЩЕНО не активно, так что старт вряд ли был нажат, то что модбас и физические входы в это время принимают информацию не показатель, они живут своей жизнью и старт программы им "параллельно"
5мс это время нижней границы временного диапазона одного скана плк, какой он на самом деле, с учетом обработки кода программы, прерываний и т.п. косвенно показывает модуль статиистики, если код выполняется за меньшее время, то плк будет в холостую ждать окончания интервала 5мс, чтоб начать следующий цикл. Уже давали совет поставить минималку ноль, но к этому надо привыкнуть
Есть вопрос по реализации многоконтурных ПИД регуляторов. Не знаю в какую тему написать или создать новую,хочется донести данный вопрос до нужных людей. Задача в общем такая: поддержание определенной температуры воды,путем смешивания холодной-горячей. Проблема в том, что давление,то есть расход холодной воды часто скачкообразно меняется, в результате один ПИД следящий за параметром температуры не справляется, большие отклонения +-10 и перерегулирования. Мысль ввести стабилизирующий контур следящий за параметром давления. Один ПИД (стабилизирующий) следит за давлением, управляет задвижкой и получает задание от 2го ПИДа (корректирующего) следящего за параметром температуры. И собственно сам вопрос: как стыковать два ПИДа, как рассчитать диапозон выходного значения для 2го регулятора, задающего уставку 1му? Сборку хочу сделать на регуляторах из библиотеки Util.lib Codesys 2
Вот что у меня получается Вложение 21457 это время не желательное для нас, мы используем расходомеры жидкости они дают около 100Гц. и программу не обрежешь... Вот вопрос я написал программу на CFC а если я её напишу на LD время цыкла уменьшится?
Совершенно не факт, что при переходе с CFC на LD получится достичь желаемого. В любом случае предстоит разбираться, на что тратится время, и если хотите, чтобы кто-либо что-либо дельное посоветовал, выкладывайте свой проект. Ну и про ваши расходомеры поподробнее, как вы их читаете, что они передают 100 раз в секунду, и т.д. вполне возможно, что выбораный ПЛК для данной задачи не подходит.
Расходомер даёт количество импульсов это он https://www.youtube.com/watch?v=3IkWNq7UPFE с нашей пропускаемой способностью это примерно он даёт около 100Гц. и таких может быть до 11шт.
Расходомеры подключаются не посредственно на дискретные входа в программе считывает импульсы CTU b и таких CTU 2 шт. на один расходомер, но при этом там в программе есть куча разных манипуляций (это автоматическая линия розлива) пытаюсь всы это сделать на ПЛК110-60 Р-М и МУ110-224
ПЛК110-60 Р-М
1) In1 Счётчик №1
2) In2 Счётчик №2
3) In3 Счётчик №3
4) In4 Счётчик №4
5) In5 Счётчик №5
6) In6 Счётчик №6
7) In7 Счётчик №7
8) In8 Счётчик №8
9) In9 Счётчик № 9
10) In10 Счётчик №10
11) In11 Счётчик №11
12) In12
13) In13
14) In14 Дат. Входной Линия №1
15) In15 Дат. Шибер входной Линия №1
16) In16 Дат. Выходной Линия №1
17) In17 Дат. Шибер выходной Линия №1
18) In18 Дат. Центратора Линия №1
19) In19 Дат. Траверсы верх Линия №1
20) In20 Дат. Траверсы промежуточный Линия №1
21) In21 Дат. Траверсы низ Линия №1
22) In22 Дат. Входной Линия №2
23) In23 Дат. Шибер входной Линия №2
24) In24 Дат. Выходной Линия №2
25) In25 Дат. Шибер выходной Линия №2
26) In26 Дат. Центратора Линия №2
27) In27 Дат. Траверсы верх Линия №2
28) In28 Дат. Траверсы промежуточный Линия №2
29) In29 Дат. Траверсы низ Линия №2
30) In30
31) In31 Кнопка Пауза Общая (ОПЦИЯ)
32) In32 Пуск Линия №1
33) In33 Стоп Линия №1
34) In34 Пуск Линия№2
35) In35 Стоп Линия №2
36) In36 Авария Общая
1) Qut1 Клапан налива 1.1
2) Qut2 Клапан налива 1.2
3) Qut3 Клапан налива 1.3
4) Qut4 Клапан налива 1.4
5) Qut5 Клапан налива 1.5
6) Qut6 Клапан налива 1.6
7) Qut7 Клапан налива 1.7
8) Qut8 Клапан налива 1.8
9) Qut9 Клапан налива 1.9
10) Qut10 Клапан налива 1.10
11) Qut11 Клапан налива 1.11
12) Qut12 Клапан налива 2.1
13) Qut13 Клапан налива 2.2
14) Qut14 Клапан налива 2.3
15) Qut15 Клапан налива 2.4
16) Qut16 Клапан налива 2.5
17) Qut17 Клапан налива 2.6
18) Qut18 Клапан налива 2.7
19) Qut19 Клапан налива 2.8
20) Qut20 Клапан налива 2.9
21) Qut21 Клапан налива 2.10
22) Qut22 Клапан налива 2.11
23) Qut23 Индикатор Пуска Линия №1
24) Qut24 Индикатор Пуска Линия №2
25) Qut25 Насос 1
26) Qut26 Насос 2
27) Qut27 Насос 3
28) Qut28 Байпас
МУ110-224.16Р
1) Шибер входной Линия №1
2) Шибер выходной Линия №1
3) Центратор Линия №1
4) Траверса вверх Линия №1
5) Траверса вниз Линия №1
6) Быстрый сброс Линия №1
7) Конвейер Линия №1
8)
9) Шибер входной Линия №2
10) Шибер выходной Линия №2
11) Центратор Линия №2
12) Траверса вверх Линия №2
13) Траверса вниз Линия №2
14) Быстрый сброс Линия №2
15) Конвейер Линия №2
16) Конвейер Общий
А какой самый быстрый ПЛК с дискретными входами есть у ОВЕНА ???
Самый быстрый-обновленный ПЛК110, но не факт, что это вас спасет. Нужно разбираться, на что тратится время.
а мне думается, что уже можно не разбираться на что тратится время, пока не станет известна ширина импульса, а уж про последовательный канал передачи данных с модуля вобще промолчу
В продолжение слов коллеги CAPZAP. Обратите внимание на такие характеристики контроллера, как быстродействие входов и выходов. Соотнесите это с шириной импульса, который выдает ваш расходометр. Поймёте, можно ли в принципе поймать этот импульс входом. Попробуйте оценить потери времени на обмен с перферией. После этого возможно появится мысль отделить мух от котлет, поручив счет импульсов другому устройству. И еще один маленький секрет. У контроллера 24 выхода, и то, что в конфигурацию удалось запихнуть 28, не делает жизнь легче. Так что просится еще один МУ100 со всеми вытекающими.
Подскажите пожалуйста,как настроить ПИД-регулятор и какой ФБ лучше взять для этого,чтобы реализовать следующую задачу:
Нужно регулировать температуру воды во внутреннем контуре,который охлаждается внешним контуром воды через теплообменник.
Управляем регулирующим клапаном подачи воды во внешний контур.
Клапан управляется сигналом 0..10В.
Здравствуйте, помогите пожалуйста написать программу на языке ST или CFC в CoDesys v2.3 На контраллера плк 150., я учусь в ггнту на факультете автоматизации и прикладной информатики, если я не напишу программу мне зачет не поставят)) . Буду очень благодарен.
имеется: емкости для воды, датчик уровня ,насос..
1. При нажатие кнопки "РЕЖИМ 1" работа установки происходит следующим образом:
* Открывается клапан 1, и емкость наполняется водой до заданного уровня.(вода наполняется с помощью насоса)
* Открывается клапан 2, и выполняется слив воды до достижения нижнего уровня в емкости, после чего закрывает клапан 2.
* открывается клапан 1: запускается насос и е емкость наполняется водой заданной уровни.
2.при нажатие кнопки” Режим 2 ” работа установки происходит следующим образом:
*Открывается клапан 1 и емкость наполняется водой до заданного уровня.(вода наполняется с помощью насоса) и открывается клапан 2(слив) короче одновременно открыты две клапаны т.е насос для наполнение емкости водой и клапан для слива воды и должна программа держать воду на заданном уровне при открытом клапане 2 (слив) и насоса.
*программа должна быть в аналоговой а не дискретной.
3. Если не нажата кнопка "СТОП", продолжить работу, начиная с п.1., Иначе - завершить работу программы.
Как запустить параллельно две программы на ST и SFC?
ps код на st для визуализации, а sfc - логика
Вызови их где-нить. Можно последовательно
Ps
Зачем грузить чела диспетчером задач когда он просто вызвать программу ещё не научился
Нашел "конфигурацию задач", ругается на событийную переменную. скрин
Вложение 21496
....................
Скрины можно вставлять в сообщения
Вложение 21500 Вложение 21501
В примере у препода именно через диспетчер, не знаю как побороть эту ошибку.
Событийная переменная CURRENTCLIENTID в задаче должна быть типа bool.
\Вложение 21502
Подскажите пожалуйста при помощи какого блока в CFC можно реализовать вот такой переключатель - http://vent-house.ru/image/cache/dat...ul-500x500.jpg
Да, Вы правы...правильнее наверное будет использовать кнопку с таким функционалом.
Это управление скоростью вентилятора. Фаза должна подаваться на один из выходов, но не на оба одновременно. Т.е получается нажатием на кнопку мне нужно отключить одно реле и включить другое, и при этом предотвратить ситуацию при которой будут включены оба реле. Какой из библиотечных можно использовать? ( использую стандартную и оскат база и здание)
Pagan обычный переключатель использовать не судьба ? или необходимо еще и отключать ? хотя все равно выключатель + переключатель будут стоить дешевле
доброго времени суток. помогите пожалуйста подружить мк110-220.4к.4р с плк 100 по протоколу овен, не получается управлять выходами мк110. настроил входы : unsignet variadle (listen) - 8 bits (address- 24, hasn name- r.cn) через кодесис видет все работает, а вот с выходами как управлять разобратся не могу. делал так: первый выход- float variable (listen) (address- 24, hash name- S.do [такое имя в параметрах в документах], float type- float pic), второй выход адрес 24+1. что я не так делаю?
ПЛК-150. Как перезагрузить проект при использовании RS-232? Комбинация кнопок СТАРТ и СБРОС, потом создание загрузочного проекта? Нужен ли при этом ПЛК-браузер? Проделовал перезагрузку несколько раз (как-то получалось), но так и не понял четкого алгоритма действий.
Браузер не нужен. Порт не имеет значения. Алгоритм запомнить просто :
1.Привез на этаж новый диван. Приготовил проект
2.Зашел в квартиру. Выкинул старый диван в окно. Вышел на лестницу. Соединение, сброс заводской, отключение
3.Освободить новый диван от упаковки.Проект/очистить все
4.Занес новый диван. Соединится, загрузится
5.Быстренько занял место на диване. Создать загрузочный проект
Для ПЛК73/63 п.5. - лишний. Типа грузчики заносят диван, а ты уже на нем. С пивом.
Вопрос Новичка!
Есть ПЛК, в нем программ, работает по протоколу Modbas(master), через TCP/IP. В плк приходят данные с приборов через RS-485.
бывает что плк выходит из строя(сгорает, нет напряжения, дядя кузнец молоток уронил на него и др варианты как вероятные так и не очень)
Хотим сделать так, один вышел из строя автоматически включился второй, та же программа, ток же IP-address. Таже марка плк
С RS-485 хотим вывести линию связи сразу в 2 плк?
Переключение плк Как это можно организовать? (реле или что то по современнее есть)
Будет ли вообще работать?
Если где то ошибаюсь поправьте.
Можно сделать так. В исходном состоянии на ПЛК-1 напряжение подано и он работает, на ПЛК-2 напряжение не подано и он не работает. Если ПЛК-1 вышел из строя, то его надо обесточить, а на ПЛК-2 подать напряжение. Надо поставить внешнее реле с катушкой на ~220 В (1НО, 1НЗ контакты) с управлением через дискретный выход ПЛК-1 и кнопки начального запуска. Горячего резерва не получится, но система будет работать.