светодиод горит, а сигнала физического нет? смотрите свою схему подключения, логика здесь не причём
Вид для печати
In_Da_Cher_A
Спасибо! Проверил, да был косяк в подключении.
ПЛК110-60 МК2.
Как задать частоту сигнала на быстром выходе с периодом менее T#1ms.
ищите на форуме, где-то была тема с "самодельным" библиотеками
про быстрые выходы начните сначала здесь
https://owen.ru/forum/showthread.php?t=22169
Почитал. То, что описано мне уже известно.
Повторюсь. Уже есть переменные которые через AT % наложены на адреса в Modbus Slave (делалось это таким образом, потому что переменные удобнее заполнять копипастом в Notepad++, и в целом текстовое оформление переменных для быстрой работы мне кажется более удобны) - эти переменные присваиваются на INPUT, IN_OUT в функциональные блоки где и ведется обработка данных. Сделано это для обмена данными между СП315 и ПЛК160М02 по Modbus TCP.
Требуется создать нового Slave для обмена по Modbus RTU в конфигурации ПЛК(т.к. сетевой адрес в сети RTU должен быть настраиваемым на ПНР. Тот что уже есть в Slave для TCP мы не хотим менять, т.к. привязки у панели везде к сетевому адресу 1). И в этот новый Slave выдать те же самые переменные что уже созданы для обмена по TCP.
Вложение 62618
Вложение 62619
Есть ли какие-то способы для этого?
К примеру в Unity от SE - я могу создать несколько переменных и всем присвоить один и тот же адрес. Как их будут использовать по коду он не ограничивает, вопрос только в адекватности программиста и программы.
У Siemens, я могу через AT наложить как на адрес %, так и VAR1 AT VAR1_1: BOOL - т.е. наложить переменную на переменную если у них одинаковые типы.
Сложность в Codesys 2.3 в том, что на каждый слейв создаются новые адреса % или же новые переменные, а мне необходимо выдавать одни и те же переменные в два разных канала информационного обмена.
И если с управляющими командами все проще. То как быть, что в ПЛК могут писать уставки как с панели по TCP, так и с АСУТП по RTU - а уставка это одна и та же, одна и та же переменная.
Придётся написать FB для синхронизации.
Как уже сказано выше, просто добавь в существующий слейв еще один интерфейс, например, RS485.
Все!
Будешь "писать уставки как с панели по TCP, так и с АСУТП по RTU - а уставка это одна и та же, одна и та же переменная"
ЗЫ.
Адрес для второго интерфейса можешь сделать любым!
Будет ли работать добавления нового Slave в уже существующий Slave? Тот, который будет вложенным, будет видеть переменные своего родителя в ветке?
Нет, но родитель будет видеть ВСЕ переменные вложенного слейва
ЗЫ.
https://owen.ru/forum/showthread.php...l=1#post146969
Ищу наиболее простое решение среди тех, которые не будут вносить изменения в уже существующий проект.
Перепривязывать визуализацию на панели уже не представляется возможным. Можно вкрутить секцию, которая бы не затрагивала уже существующую алгоритмию, можно создать новые переменные и наложить их на старые и т.д. и т.п.
Переделывать структуру уже существующих ФБ, уже не представляется возможным.
Трудность с заказчиком в том, что не было какого-то конкретного требования по RTU (АСУТП) составляющей. В итоге накидали два порта в один Slave и всем все вроде бы ОК. А сейчас заказчик говорит - мы собрали все ваши типовые шкафы в один шлейф RS-485 и будет работать по RTU. Это ведет к тому, что нужны разные SlaveID/UnitID.
Отсюда и возник вопрос, что можно сделать с тем, что имеем.
Я же вам это три дня назад написал)) это был 3 вариант.
И мой вам совет, не пишите программ с прямой адресацией AT %QW12.0.0. Вам теперь в слейве, переписывать все адреса придётся.
Если лень давать имена переменным, сделайте массив (структуру) с указателем на 0 адрес и ВСЁ!
Пардон, не в ту ветку написал...
Добрый день. Подскажите, где можно найти готовые проекты (сначала простые) для изучения. Спасибо
Здесь примеры проектов https://owen.ru/product/codesys_v2/example_program
Смотрите 17 обучающих видео https://www.youtube.com/watch?v=UGUn...u2-USwUXB5nDJj
Вложение 62762
Здравствуйте. Посмотрите, пожалуйста, на снимок экрана, я не понимаю эту логику. Я с сименсовских ПЛК пришёл, и там этот пример работает. А на СПК107 вот так вот.
Вложение 62764
Вот весь экран приложения, F5 нажал.
Нет, ну конкретно в этом случае я, конечно, могу пользоваться константой AlwaysFalse, но просто теперь уже нет уверенности в том, что Set и Reset вообще работают в Codesys.
Одна лишняя картинка, извините, удалял вроде
Спасибо! Теперь работает.
Подскажите, что означает стрелка на пиктограмме в POU?Вложение 62830
Данный POU изменён и требует загрузки в ПЛК.
Добрый день!
Можете, пожалуйста, подсказать в чем принципиальная разница между ПЛК 110-60 и ПЛК 160? Может быть есть какая-то сравнительная таблица?
И второй вопрос: предположим есть станок или установка, т.е. обычная средняя система автоматизации. Есть ли смысл брать ПЛК 160 или лучше взять 200ый? Если не считать количество вхожов/выходов.
Неужели трудно открыть на сайте нужный ПЛК и сравнить? https://owen.ru/catalog/programmirue...ie_kontrolleri
Если вкратце 110_60 имеет только дискретные входы, выходы, а 160 ещё и аналоговые входы и выходы.
Что вам нужно решайте сами.
А на 200 ещё и среда разработки другая, опять же, что вам удобнее.
Друзья, подскажите пожалуйста как убрать пробелы (точки) в строке ввода
…столкнулся с конфликтом двух библиотек
SmsOwenLib (2.3.0.25)
Oscat_basic_333
В обоих присутствуют POU с именами «IS_NUM», «ISC_NUM», «TO_UML», что вызывает ошибку компиляции №3700.
РЭ предлагает "просто" заменить имя повторяющегося POU.
Прошу подсказать:
Как переименовать или выборочно удалить неиспользуемые POU в библиотеке (из Oscat использую только ф/б ONTIME)
(p.s. Всем здравствуйте…)
1) выкинуть из проекта библиотеку оскат
2) открыть библиотеку оскат отдельно
3) скопировать в свой проект нужный ФБ или экспорт,импорт
Проект-Опции-Генератор кода-исключить объекты-исключить неиспользуемыеЦитата:
неиспользуемые POU в библиотеке
как-то так. Если не получится, то надо руками выбирать вроде