У меня связь по Ethernet .
Вид для печати
У меня связь по Ethernet .
Другой вопрос . Номера порта 502 можно поменять на любой другой , например 501 (соответственно и на другом плк тоже 501 )
Спасибо , настрою 504 .
Вся суть . У меня плк 110 мастер для мв210 и второго плк 110 . Второй плк110 мастер для своего мв210 , но по порту 503 (мне когда-то специалист посоветовал так сделать) . Теперь третий плк надо добавить со своим мв210 , он будет мастером для первого плк110 но по порту 504 . Так правильно ?
Первые два плк сделал 2 года назад . Теперь дорабатываем проект .
Плк может работать для одного устройства мастер а для другого слейв на одном порту ? У меня на 3-м плк ещё СП307 ( как мастер для плк )по Ethernet и мв210 (как слейв для плк ) .
Спросил у человека который продал плк63 (по первой версии), он говорит ему посоветовали использовать старые версии таргета и библиотеки, там 512 POU
Прошил при помощи двух резисторов и кнопки на 2.12, проблема с числом POU решилась.
Теперь не могу понять что я делаю не так, отсутствует связь I/O в проекте с I/O в ПЛК63)
А после смены таргета в проекте была дана команда "Стандартная конфигурация"?
Тренировочный проэкт с новым таргетом создавал
Кто нибудь может посмотреть через Anydesk?
Решил для начала написать проэкт для винтового подемника с "электронной" синхронизацией. Codesys 2.3, плк63
Неожиданно возникла проблема, оператор SUB вычитает WORD, а AND не хочет делать сложение WORD. Как так?
Наверное не and , а add
Скинул обновленный проект ПЛК110 заказчику. Он прошил с помощью утилиты plc_io. Но такое ощущение, что проект не обновился.
Я когда после компиляции жму на "Создание загрузочного проекта", мне сообщается, что "Текущий код не соответствует загруженному. Продолжить?".
Такой вопрос ненормален, нужно что то исправлять перед созданием загрузочного проекта?
в чём ненормальность то? КДС в офлайне, физически не с чем сравнить, что не так?Цитата:
Такой вопрос ненормален
и вы не продолжаете, да?Цитата:
Продолжить?
'Онлайн' 'Создание загрузочного проекта'
Используется для того, чтобы сделать код проекта автоматически загружаемым при перезапуске ПЛК. При перезапуске контроллера этот проект будет выполняться автоматически.
Выполнение команды зависит от целевой системы. Например, для 386 системы создаются 3 файла: default.prg, содержащий код проекта, default.chk, содержащий контрольную сумму кодов, default.sts, содержащий статус контроллера.
Эта команда также доступна в режиме offline, если проект скомпилирован без ошибок. В этом случае в директории проекта создаются следующие файлы: <имя проекта> .prg, в котором сохраняется код проекта, и <имя проекта> .chk - хранит контрольную сумму. При необходимости эти файлы можно переименовать и записать в контроллер.
В зависимости от настроек целевой системы в режиме offline создается новый *.ri-файл (загрузочная информация). Также в зависимости от настроек будет дано сообщение, если такой файл уже существует.
Информация о загрузке сохраняется в файле <имя проекта>0000000ar.ri, который используется, если система поддерживает возможность Горячего обновления (изменения в режиме Online). Этот файл удаляется командой 'Проект' 'Очистить все'.
В зависимости от целевой платформы при каждом создании загрузочного проекта *.ri файл может генерироваться заново.
Изначально заказчику нужно было выводить процент использования насоса (от частотника). А потом он захотел видеть в Герцах. Считываю и сразу передаю на панель, а выводится по прежнему в процентах :)
Частотник Meyertec VFD1 имеет два регистра 1001 и 1007, которые передают одинаковую информацию (удивительно, но так по руководству).
Я считываю регистр 1001, который вообще то в Гц.
Вложение 85905
Проект у заказчика записался корректно - прислал фото результатов работы утилиты записи.
to Ollema
выше In_Da_Cher_A вам всё что нужно привёл.
А чтобы не было ощущений, делайте какие-нибудь внешние проявления нового - попищите пищалкой, пощелкайте неиспользуемым выходом, выведите какое-нить левое значение на панель на несколько секунд после старта, перепишите на старте файлик с версией который после рестарта считайте и т.п. - фантазия тут не имеет границ.Цитата:
... Но такое ощущение, что проект не обновился...
Да если бы я там был, мигом бы все решилось. Беда в том, что заказчик далеко и там работают одни начальники :)
Приходящий киповец - редкий гость по вызову :)
Пришел залил, ушел. Начальники скинули через день результат и устранились.
Разберусь, просто решил провериться - все ли верно было сделано с моей стороны.
Так уже выяснил - прошилось.
Для общей картины :)
Да, чето тупанул ADD и AND слились АND. Смутило что WORD через AND проходит но ничего не изменяется)
Как проще всего прокручивать несколько надписей в одной строке на дисплее плк63?
Пока три ошибки в виде выходов из 3 тригеров, если нет ошибок "нет ошибок", в случае ошибки в одной строке от 1 до 3 словосочетаний, по очереди. Сильно сокращать или использовать коды не хочется. Язык CFC плк63
Пробовал через три SEL, когда доходит до третьего выкидывает обращение к неизвестному адресу)
Я непонял чем еще можно менять текст в ShowString
Код:var
alarm: dword;
index: byte := 31;
alarm_str : array[0..2] of string(16) := 'нет ошибок','xxx','yyy','zzz';
ton: ton := (pt := t#3s);
-----
alarm := 0;
alarm.1 := ..
alarm.2 := ..
alarm.3 := ..
alarm.0 := alarm = 0;
ton(in := not ton.Q);
if ton.Q or not extract(alarm, index) or index > 3 then
repeat
index := (index + 1) mod 4;
until extract(alarm, index)
end_repeat
ShowString(?,0,?,alarm_str[index]);
end_if
В квадратики самиЦитата:
CFC
Спасибо. Осталось понять как это реализовать в CFC. Я выбрал CFC потому что нет времени вникать в написание кода. Для меня это страный набор понятных слов.)
А на кой?
вставляйте этот квадратик на свое квадратное поле и пихайте на/с ножек самиКод:PROGRAM XXXX
var_input
alarm1, alarm2,alarm3: bool;
end_var
var_output
str: string(16);
end_var
var
alarm: dword;
index: byte := 31;
alarm_str : array[0..2] of string(16) := 'нет ошибок','xxx','yyy','zzz';
ton: ton := (pt := t#3s);
end_var
-----
alarm := 0;
alarm.1 := alarm1;
alarm.2 := alarm2;
alarm.3 := alarm3;
alarm.0 := alarm = 0;
ton(in := not ton.Q);
if ton.Q or not extract(alarm, index) or index > 3 then
repeat
index := (index + 1) mod 4;
until extract(alarm, index)
end_repeat
str := alarm_str[index]; (*ShowString(?,0,?,alarm_str[index]);*)
end_if