Добрый день.
Библиотека OPR реализована как внешняя. Проект с ней получится загрузить только в контроллер ОВЕН (ПЛК2хх или СПК).
Вид для печати
Для перечисления по умолчанию используется тип INT, отсюда отрицательные значения.
Вроде бы можно изменить тип перечисления, указав его тип в конце, как показано там в примере:
Код:TYPE COLOR :
(
white := 16#FFFFFF00,
yellow := 16#FFFFFF00,
green := 16#FF00FF00,
blue := 16#FF0000FF,
black := 16#88000000
) DWORD := black
; // Basic data type is DWORD, default initialization for all COLOR variables is black
END_TYPE
INT#16#F00D ?
Кстати для 8A-v2 коррекцию надо будет делать
Точно, прописал WORD и всё стало работать))) Вложение 78859 работа Вложение 78860
Для H/W 2.0, достаточно 16#F00D заменить на 16#0D
плк200, из первых моделей. взял, что было под рукой из неиспользуемого - сейчас начал писать новую прогу, без замороченности - клапанами пощелкать и на шим посмотреть)). другие проекты (адаптированивые - рабочие ) заливал - так же было. 99.9% что не в проекте дело.
Смущает, что этот процесс - синхронизация времени, причем используется dev/rtc1 . причем синхронихация времени с ntp сервером / браузером (в вебморде), не меняли родное время (то, которое отображается в выхлопе hwclock)
чтоб не вгружал - удалил задачу cron :rolleyes:
теперь при попытке синхр-ции (в вебморде) - так же появляется этот процесс съедающий остаток цп, но его хоть прибить можно
Добрый день!
Возможна ли реализация ведения журнала действий оператора для СПК110/210? Например в виде таблицы, где каждая строка состоит из полей "оператор", "переменная", "старое значение", "новое значение"?
Карбофос Вон Евгений Кислов говорит, что штатно нет. Да, так и есть.
Я бы дурканул и написал бы на основании Тревог. Код был бы ручной, но его же не на все переменные ПЛК надо пихать:
а) Сделать FBшку типа CSValueMonitor, на вход которой подаются имя и значение переменной, а на выходе есть Текущее, Предыдущее значения (или вообще строка из них, включая имя пользователя) и булевый флаг изменения, который формируется таймером TP на время, условно 500 ms, чтобы ПЛК успел это отловить.
б) В менеджер тревог запихать тревоги без подтверждения (REP), которая формирует текст из LATCH-переменных (их всего две) типа "Изменение значения переменной VarXX: <LATCH1>" и передать туда инфу из экземпляра FBшки.
Тогда всё будет логиться в эту таблицу тревог.
Писал мутно, так как только что идею выдумал. Она может быть кривая и не отшлифованная умственно.
Добрый день.
Периодически наблюдаю такую проблему, размещаешь переменные на расстоянии от операторов, функциональных блоков, но в какой-то момент при очередном открытии проекта переменные увеличиваются в размере и начинают наезжать на оператор или функциональный блок. В чем может быть проблема, как с этим бороться?
Вложение 79027
Вопросы по настройке Modbus TCP Slave - что такое "Unit ID"?
Судя по даташиту настройки обмена по TCP для всех модулей ОВЕН значение должно быть "1".
Вложение 79038
Ранее я считал, что это какой-то условный уникальный номер для слейв-устройств, и каждому модулю присваивал свой: 2, 3, 4 и т.д.
Сейчас в проекте сеть из несколько МЭ210-701. Нет связи со всеми модулями с UnitID, отличным от "1".
Модули подключаются и отключаются с ошибкой "socket keep-alive expired".
Поставил везде "1" - все данные пошли полетели в ПЛК.
Для чего этот параметр и как его можно использовать? И можно ли?
П.с.: Посмотрел в ранее сданных проектах - у меня почти везде эти номера уникальные, и вроде всё работает :D
Может это особенность МЭ210-701?
Обычно этот параметр актуален для шлюзов, к которым подключено несколько modbus rtu устройств с разными адресами.
PS https://ipc2u.ru/catalog/promyshlenn...hlyuzy-modbus/
Party3AH В обычном Modbus это будет адрес устройства.
А вот в Modbus TCP адресом является IP-адрес. А этот параметр практически не используется (но если устройство его поддерживает - можно использовать).
Для ОВЕНа он должен быть равен 1. Для других может быть даже равен 0.
это же стандартный протокол, а не придуманный кем то для модуля, загляните ради интереса в спецификацию
https://modbus.org/docs/Modbus_Messa...uide_V1_0b.pdf стр.23 абзац про Unit Identifier
Виртуальный контроллер CODESYS Control Win V3 используют для проверки проектов, если нет живого контроллера. Почти всё можно проверить,
даже обмен по Модбас и по ТСР.
В вирт. контроллере как раз происходит автопереподключение и пропадание связи на долю секунды. В живом проверить не могу, нечем.
Кто поможет? При установке CODESYS ошибка Вложение 79145
Kоллеги, Я почему то не могу создать тему, поэтому пишу здесь. У меня вопрос: я создал проект с мод бас TCP и хотел протестировать на мастер ОПС юниверсал модбас сервере. Чисто виртуально без плк. Я могу это сделать? Режим эмуляции включать ? или нужен плк? Я не могу подключиться. сделал все как в описании + видео смотрел. через модбас тоолс ОПС работает. проблема в соединении с CodeSYS.
Вот видео, установите всё как там https://www.youtube.com/watch?v=3KcJWZEVXCg
эмуляцию не включать?
Вложение 79183
вот как у меня
Эмуляция, это без подключения к ПЛК, только проверка кода, обмен в эмуляции не работает.
Для работы с виртуальным контроллером, надо сделать копию проекта, поменять ваш контроллер на виртуальный Codesys Control WIN V3
соответствующей версии Codesys, например 17.3, удалить Таск Овен клауд.
Запусить вирт. контроллер 17.3 и подключиться к нему, загрузить код в него, сделать Старт программы и программы ОРС сервера. Смотреть обмен.
Если есть обмен, значки в дереве проекта около Изернет, Модбас Мастера и Модбас слейва будут зелёными.
Привет.
Подскажите, какая последовательно выполнения действий?
1, потом 2? (показано красным)
Что-то складывается ощущение, что наоборот...
Вложение 79230
Метод, который запускается во вкладке "Выполнить СТ-код", получает нулевые значения.
Стало быть: диалог закрылся, а значения еще не записались?
П.С. Все переменные - глобальные Retain.
Вложение 79248 я создал только не знаю правильно ли.?
и еще вопрос. Я извиняюсь новичок. немного сложно разобраться есть DI и DO часть этих сигналов нужно отправить в AСУ(оператору) по адресам я сделал скрины по два сигнала
[ATTACH=CONFIG]Вложение 7925079249[/ATTACH]
создал TCP мастера+ТCPславе, в славе сделал два канала только какие не знаю то ли coil то ли disk. input для чтения BOOL и какой создавать для записи команд в DO . нужно чтоб оператор видел состояние и управлял включить выключил или квитировал аварии как к адресам привязывать ? я.прошу помочьВложение 79251
Ну здесь почти правильно, только не тот добавили, надо без х64, просто CODESYS Control Win V3, у Овена версия 32 битная.
Надеюсь регистры добавили в слейв ? Чего вы боитесь то ? Запускайте и проверяйте. ОРС должен быть мастером тогда.
Вот видео посмотрите, как настраивать слейв и как мастер, у вас тоже самое, только контроллер витруальный, с адресом слейва 127.0.0.1
ПЛК слейв https://www.youtube.com/watch?v=Zq1G...KheVx&index=12
ПЛК мастер https://www.youtube.com/watch?v=mkpY...KheVx&index=11
Вложение 79272Вложение 79273 коллеги, программа сканирует вирт.плк но не входит. где нужно ставить IP?
вопрос с паролем решил спасибо, но все равно почему то не могу войти. После ввода пароля Вложение 79274. Где то я ошибаюсь.
После сканирования надо выбрать появившийся ПЛК в окне и нажать Ок. Вложение 79277
Если ничего не нашлось, запустить вирт. ПЛК снова.
Можно удалить пользователя Вирт контроллера, сбросить логин и пароль, если не можете подключиться
После сброса, лучше запомнить логин и пароль, особенно в 17.3 версии.
https://owen.ru/forum/showthread.php...67&page=14#134
ура .подключился!!!!!!! спасибо огромноеВложение 79278 .Завтра будем дальше работать.
коллеги есть 10 DO выходов с адресами 2001-2010 и 10 DI входов с адресами 3110-3119 все BOOL как их привязать по TCP Slave.переменные объявлены GVL в программе. создал интернет и славе устройство.Вложение 79306
какой пример использовать. много показаны примеров Real И word а BOOL?
2)надо ли отдельно создавать POU для модбас или можно в основной.
3) основная программа на языке LD/FBD а все примеры в док на СFC. если я создам новый POU и загоню оба в TASK будет работать?
Булевые переменные проще читать, записывать регистрами, если это возможно и потом распаковывать, упаковывать в маски.
Либо вы вручную привязываете все переменные в соотнесение переменных в слейве.
Либо объявляете массив равный всем переменным и один раз его втыкаете туда.
Выше со скринами все ответы есть. Станица 769.
2001 бит это 125 регистр биты с 1 по 10, записать маску из 16 бит в 125 регистр
3110 бит это 194 регистр биты с 6 по 15, читать 194 регистр 16 бит и брать нужные.
Да ещё в 17.3 версии байты переставлены, так что 6 бит попадает на 14, 7 - на 15, 8 - на 0, 9 - на 1 и т. д. Сами увидите.
Настройка Вложение 79315 Соотнесение Вложение 79316 ОРС сервер Вложение 79317Нужные биты работают.
2) Лучше создать.
3) Программу лучше писать на нормальных языках, CFC или ST. Вам по крайней мере подскажут, создать для неё Таск и вызвать её.
Язык ST, чем и хорош, скопировали текст и вставили в новую программу, чуть подправив если надо.
Вложение 79321 я правильно понял если записывать в 125 или 194 регистр то у меня их всего 70. как их считать нумерация регистров с 2000 тогда дискр входы 3100? и галочка нужна?
Зачем я вам скрины то выложил ? Делайте как на скрине, всё будет работать. Читаются и 125 регистр и 194.
Все галки убрать.
Вы читаете массив, начиная со 125 [0] регистра по 194 [69] , всего 70 штук,
биты в [0] регистре c 2000 по 2015,
в [69] регистре с 3104 по 3119
Где синяя буква М, у вас адреса повторяются читайте тут
https://owen.ru/forum/showthread.php?t=28167&page=6#52
Добрый день.
Не работает примитив «Управление вращением» из стандартной группы элементов.
В свойствах прописал переменную, числовой формат, диапазон. Что еще требуется?
Вложение 79325Вложение 79326Вложение 79327
все сделал , а в самой программе что писать?