in7 и in8 у вас объявлены типа BOOL - какой бит у них вы пытаетесь получить?
Вид для печати
с этим разобраться легко, удаляем не подключенные блоки и не одной ошибки. Дальше что
Спасибо. Новичкам помогать нужно. Они учатся. А не ошибается тот кто ни чего не делает
Все получилось, ошибка была простая. Спасибо
Тут уже не сокращать надо, а программу PLC_PRG делить на блоки, Вложение 63720
а то вторая половина в эмуляции серым цветом и с вопросами.
Всем привет, ребят, подскажите, что такое Firs Scan ? В CodeSys для ПЛК
То есть, это нужно для того, чтобы заработал ПЛК ?
Подскажите, пожалуйста, я правильно понимаю, что этот код, он как бы настраивает ip ПЛК ? Просто щас смотрю код другого программиста и не могу понять для чего это вообще нужно...
ETH_ADD1.Add_1 := 000;
ETH_ADD1(
EN:= FirstScan,
FUN:= 2,
Add_4:= 000,
Add_3:= 000,
Add_2:=0 ,
Add_1:= ,
Q=> );
Коллеги, подскажите, возможно ли как-то сбросить ФБ BLINK, чтобы при следующем вызове он начал отрабытывать тайминги с нуля. ENABLE не помогает.
Подрихтуйте BLINK под себя:
Код:CLOCK; (* call Timer *)
IF ENABLE THEN (* time passed or init *)
IF CLOCK.Q=FALSE THEN
CLOCK(IN:=FALSE); (* reset Timer *)
CLOCK(IN:=TRUE); (* restart Timer *)
IF OUT=FALSE THEN
CLOCK.PT:=TIMEHIGH;
ELSE
CLOCK.PT:=TIMELOW;
END_IF;
OUT := NOT OUT; (* invert *)
END_IF
ELSE
CLOCK(IN:=FALSE);
CLOCK.PT:=t#0s;
OUT := FALSE;
END_IF
С чего это вдруг ? ))
Бесмысленно передавать константы как в том фрагменте.Цитата:
в контексте FirstScan задавать IP бессмысленно..
А организовать "а коли вошел 0.0.0.0, то ты не пиши, а читай" - легко. См. syslibtime ))
Ну я вот еще и syslibfile использую )).Цитата:
...для этого есть PLC Browser
Разве ip отличается чем-то от какого-нить коэффициента пида ? Такой же пользовательский параметр.
есть доказательства? Чему равен в таком случае первый цикл, а может ли он со временем превысить МаксВрЦикл? Есть защита от рисков что произойдет перегрузка при открытом файле и он не испортится? Не похожа ли вся эта ситуация что программист с многолетним опытом предлагает новичку как получить кирпич
Доказательства чего ?
В 97..99% случаях 3..4мс. В 1-2% мелькнет 20...25мс. Допускаю что в отдельных случаях до 100мс. И ?Цитата:
Чему равен в таком случае первый цикл
Да. Если МаксВрЦикл поставить 10мс. Это один из способов производства кирпичей (см. ниже)Цитата:
а может ли он со временем превысить МаксВрЦикл?
Есть защита от рисков в альтернативных случаях ? Например от злой собаки в следующем цикле после открытия файла при разнесении операция по циклам ?Цитата:
Есть защита от рисков что произойдет перегрузка при открытом файле и он не испортится?
Я тоже предполагаю что тот неизвестный программист - с многолетним опытом. У Вас есть основания предполагать иное ?Цитата:
Не похожа ли вся эта ситуация что программист с многолетним опытом..
Линия по прозводству кирпичей из ПЛК ждет своего часа пока этот новичок при наличии всего проектаЦитата:
Не похожа ли вся эта ситуация что программист с многолетним опытом предлагает новичку как получить кирпич
Особенно если этому новичку доверили ПНР. Причем сырьем для производства кирпичей может стать всё вокруг. Безотносительно количества циклов ПЛК и их длительности. Это про что было воообще ?Цитата:
не могу понять для чего это вообще нужно...
Добрый день.
ПЛК110(М02) , Codesys v2
нужно упаковывать из двух WORD полученных по MODUS в один DWORD (приходят старший - младший биты)
в Codesys v3 есть библиотека CAA Libraries с блоком MEM.PackWordsToDword которая это реализует.
Есть ли аналог в v2 Codesys ? или как-то еще можно реализовать упаковывание ?
Спасибо
Есть сдвиги и ADD если штатные FBD использовать, ну или кодом на ST
В Codesys v2.3 можно вообще ничего не упаковывать. Просто назвать переменную состоящую из двух WORD стоящих по порядку, например Dw1 : DWORD;
( или Dw1 AT %QB12.1.0 : DWORD; ) и читать как DWORD.
Здесь обсуждались перестановки байт, регистров в переменной полученной по модбас. Одну и туже переменную из двух WORD, можно прочитать и как DWORD и как REAL https://owen.ru/forum/showthread.php?t=36596
Пример склейки REAL из двух WORD, есть в моём примере https://owen.ru/forum/showthread.php?t=35094#10
Добрый день,
ПЛК110(М02), Codesys v2
Самопроизвольно перезагружается в течении 15 минут работы, при удалении/недоступности для опроса slave устройств modbus проблема исчезает
Параметры modbus Master:
com speed: 38400
Parity: No parity
Data bits: 8 bits
Stop len: 1 bit
Interface type: RS485
Frame oriented: RTU
Framing time ms: 100
Visibility: No
Настройки slave устройств:
NetMode: Serial
Address: 5 - 8 (4 устройства)
WorkMode: ByPollTime
PollingTime: 100ms на 2 устройствах 1000ms на других 2 устройствах
AmntRepeat: 3
ByteSequense: Trace_mode
4 устройства: 2х МВ110-8а, Частотный преобразователь ESQ600 , Частотный преобразователь instart LCI, неважно включен движок или нет все равно идет сброс
второй modbus порт работает в режиме slave, подключена панель СП307
настройки те же за исключением:
com speed: 115200
framing time: 200ms
с ней обмен идет на 60 регистров (120 байт)
Пробовал добавлять основную задачу написанную на CFC в конфигурацию задач с циклическим типом и интервалом 200ms и сторожевым таймером 10с восприимчивость 5
Проверки на перекрытие памяти и вообще все проверки которые можно там выставить при комплияции выставил.
Перепробовал все что нашел по этому поводу не помогло поэтому пишу сюда.
Времена циклов менял от меньших к большим в надежде решения проблемы т.к. система не слишком требовательна ко времени.
Первый проект в codesys )
P.S. пожалел что использовал CFC как язык для основной задачи, потому что в процессе разбирательств со всем и вся гораздо больше понравился ST (CFC выбрал потому что до этого много программировал ПР200 в owenlogic и он с виду похож)
Подскажите как правильно выгрузить проект если это нужно
Если работает при отключенных слейвах, то в них и проблема, возможно помехи с ПЧ идут. Какие меры проведены, для помехоустойчивости линии?
Проверяйте подключением слейвов по очереди и смотрите на каком отключается.
Проект можно выложить в расширенном режиме. Вместо лишней писанины, лучше сделать скрины. Пишите конкретно по проблеме, а не всё сразу.
Все сторожевые таймеры свои удалите нафик.
CFC абсолютно не при чём, как вам удобнее так и пишите программу.
Скорость попробуй снизить до 19200. Подключи к порту RS-485 сначала один МВ110-8а, посмотри результат. Если все нормально, то подключи второй МВ110-8а. Проверь если связь когда на линия только один частотник. Оба частотника сразу не подключай. Резисторы 120 Ом на концах линии связи есть ? Какова топология сети RS-485 ? Должно быть по цепочке.
чисто академический интерес - зачем вешать такое тормозное устройство как МВ110-8а да на такой скорости, какая вообще им даже в теории недоступна, да в пару к частотникам?Цитата:
ПЛК110(М02), Codesys v2
Самопроизвольно перезагружается в течении 15 минут работы, при удалении/недоступности для опроса slave устройств modbus проблема исчезает
Параметры modbus Master:
com speed: 38400
.........
4 устройства: 2х МВ110-8а, Частотный преобразователь ESQ600 , Частотный преобразователь instart LCI,
тем более - что есть ПЛК110 с дыркой под Модбас ТСР, куда можно спокойно повесить панель, а свободный порт RS отдать под аналоги?
чем скорость 38400 принципиально отличается от 9600 для тех же частотников? ничем, смысла ускорять опрос не вижу никакого, быстрого контура регулирования не получишь
зачем так всё усложнять? лезть потом во времена опроса, в конфиг задач и чего-то там разводить....
и причём здесь СFC?
Помехи с ПЧ точно не идут потому что перезапуск идет даже при остановленном ПЧ.
про modbus tcp спасибо, попробую, не использовал по причине привычке к rs-485.
не знал что мв110 тормозное устройство, если несложно предложите альтернативу
скорости уменьшу да и попробую все что написали, но
так и не понятно что может вызывать вообще рестарт, если есть какая то информация о том как modbus логически связан с перезапуском очень хотелось бы узнать)
Может память переполняется срабатывает прерывание на рестарт ( такого плана информация ). Вряд ли их такое множество, что невозможно из данной информации сделать хотя бы один конкретный теоретический вывод.
Хотелось бы решать вопросы не вслепую. Что может вызывать рестарт плк в принципе ?
Про CFC написал чисто свои ощущения, в сравнении с ST показался слабым инструментом, может поменяю свое мнение когда-нибудь :)
Спасибо за коменты, все проверю