опять сказать, что команды линукс и sysexec рулят ?
Вид для печати
ПЛК110-30M (old)
В проекте в ModBus master получаю переменных общей длиной 40 байт.
В Слейве передаются переменные еще на 64 байта.
ModbusMastet по интерфейсу RS485 (115200)
ModbusSlave - Ethernet (TCP/IP) (10M)
Какие имеются ограничения на длину данных в master и slave? До какого размера работоспособность будет не нарушена?
Если на Slave (Eth) выводить переменных на 512 байт?
т.е. если данных в канале необходимо больше 246 то нужно заводить второй слейв?
Как это влияет на скорость передачи данных? Правильно ли я понял, что если регистров в слейве плк 500 ( байт 1000) , то мастер отправит 2 телеграммы по 250 регистров. Т.е. время цикла обновления данных на ПЛК слейве увеличится ровно в два раза.
И мне не стоит беспокоиться сколько регистров я пересылаю. ПЛК все получит, но за больший интервал времени.
Какие-то абстрактные вопросы.
Сколько всего устройств и каких используется? Кто тот мастер, который читает/пишет регистры из/в слейв ПЛК сразу по 500 регистров? К стати, ограничение в одной телеграмме не на число регистров, а на число байт, т.е. 500 регистров -это 4 раза по 250 байт. И с чего Вы взяли, что мастеру неприменно нужно одномоментно 500 регистров прочитать/записать?
На ПЛК создан ModbusSlave.
В слейве определены 24 переменные REAL. (4*24=96) byte
4 переменные DWORD - еще (4*4=16) байт
4 WORD - (4*2=8) байт
Кроме того предполагаю потребуется еще некоторое количество переменных. Вот и спросил про ограничения.
500 регистров -это 4 раза по 250 байт
Да, это я ошибся когда сообщение писал. Сначала написал про 250 регистров (500 байт) и 2 телеграммы, а затем написал про 500 регистров не исправив кол-во телеграмм.
Но если правильно понял, то беспокоится о количестве переменных не особенно стоит. Больше 500 байт я в любом случае не наберу.
_____________________________________________
Еще столкнулся с проблемой
В слейве определены 4 последовательных 8-ми битных регистра.
Присвоены имена ACode0, ACode1, ACode2, ACode3
Кроме того имеется массив с 32 строками из переменной типа структура. В структуре есть одно поле BOOL.
В соответствии с этим полем необходимо установить значение бит в битовых переменных слейва Acode0, ACode1, ACode2, ACode3
Массив обрабатывается в цикле (одна строка за один цикл вызова программы)
Чтобы можно было обратиться к 4-м указанным переменным, я определил указатель на первую переменную ACode0 и указал тип DWORD
Код:var pt_ACode: POINTER TO DWORD;
var i: BYTE; (i меняется от 0 до 32 в программе)
CASE i OF
0:
Код:pt_ACode := ADR(ACode0);
1..32:
Далее в цикле устанавливаю биты
IF (некоторое условие1) THEN pt_ACode^:= PUTBIT(pt_ACode^, i-1, TRUE); END_IF;
IF (некоторое условие2) THEN pt_ACode^:= PUTBIT(pt_ACode^, i-1, FALSE); END_IF;
i:= i+1;
ELSE
i := 0;
END_CASE;
При компиляции дает сообщение об ошибке, что не определена переменная PUTBIT.
Библиотека UTIL.LIB подключена.
Как заставить программу увидеть эту функцию?
Похоже Codesys заглючил.
Очистил проект. Удалил библиотеку, затем добавил снова. Перекомпилировал - без ошибок.
1. пытаюсь подключиться к ПЛК63 из Codesys 2.3. как изменить настройки соединения?. из меню онлайн-параметры связи делаю соединение типа Local, но его нельзя редактировать
2.как правильно реализовать в Codesys 2.3 подачу 10в на аналоговый выход контроллера, в конфигурации ПЛК тип REAL. что нужно присвоить выходу %QD0.1.1?
3. серия ПЛК63-РУУУУУ. Как управлять первым реле если в конфигурации ПЛК стоит тип REAL %QD0.1.0?
1. В параметрах связи создаете новое соединение Serial (RS232), указываете параметры (порт, скорость (115200) и т.д.)
2. Чтобы подать на аналоговый выход 10 В - отправляете на него 1, 5 В - соответственно 0,5.
3. Чтобы управлять реле - подаете на него TRUE через блок BOOL_TO_REAL.
1.В параметрах связи создал соединение serial (RS232) но изменять параметры не дает
все вопрос снят. изменение параметров меняется по двойному клику
Товарищи, прошу просветить по вопросу организации ModbusTCP. Пользуясь биб-ками oscat собрал сервер,залил в PLCWinNT с эмулятора панели пишу-читаю, всё работает. Беру тот же сервер меняю платформу и заливаю на реальный ПЛК 110,настраиваю эмулятор панели,обмена нет. В чем причина? Возможно ли пользоваться функциями oscat для овен? И если нет,то в чем различия?
Сообщение №8 в теме SysLibSockets:Цитата:
И если нет,то в чем различия?
Следовательно, все библиотеки, которые писались под нормальную реализацию этой функции, не работают с ПЛК фирмы Овен. Хочется плакать и смеяться. Возможный костыль: выдрать нужное из оската и подредактировать под ПЛК Овен.Цитата:
Я же не говорю что в плк100 сокеты не работают. Они работают. И даже связываются с TCP сервером и получают и отправляют ему данные(могу видео приложить). Просто есть одна проблема: SysSocketConnect даже при удачной связи с ТСР сервером все равно возвращает false
Получается различия в библиотеках SysLibSockets для PLCWinNT и Овен? И различия в том, что некоторые функции не булевы?
Функции SysLibSockets реализуются в прошивке контроллеров. Файл библиотеки — лишь привязка к ним (можете сами открыть SysLibSockets в кодесисе и убедиться, что тела у функций пустые). То есть проблема тут с кодом, который является частью прошивки.
да, так и есть, вот в теме ссылка на видео с реального плк овен, всё работает и клиентская и серверная часть http://www.owen.ru/forum/showthread....l=1#post166365
Да, действительно работает, но хочется того же добиться на сборке от oscat.
Действительно пустые,из любопытства посмотрел биб-ки PLCWinNT-тоже пустые( Из этого представляется только одно, найти различия в реализации SisLibSockets, и, как Вы уже писали, в соответствии подредактировать функции oscat. Если у кого есть пример,был бы признателен и конечно благодарю за помощь!
как на CFC сделать запоминание сигнала, т.е. простую ячейку памяти так понимаю? изменяю аналоговый выход и требуется на определенном значении фиксировать это значение
Добрый день. моя конфигурация: Ип320 (Мастер)+ ПЛК100(Slave) по RS-232 (кабель распаен как в руководстве к панели). У меня вот такой вопрос: записываю данные (уставки) с панели в контроллер - они отображаются только в конфигурации, а самой программе нет значений; данные (текущие значения ) - в конфигурации ноль, не передаются на панель, там тоже ноль! скорости менял. Может кабель?
А переменные привязаны к входам выходам конфигурации, Вы хоть бы скрин с конфигуратором выложили, а еще лучше проект
как правильно добавить модуль в конфигурацию ПЛК63? модуль МУ110-6У, соединены по RS-485
по тому что нет значения уставки работы клапана 1 и 2, которые устанавливаются с панели. поэтому дергает. поставте в секундах и увидете как работает (может подскажете как оптимизировать). лучше ответьте на мой вопрос, который был ранее :)
ладно. сегодня попробую свою идею. завтра отпишусь о результате и дам программу на ИП320. у меня и по основной программе есть вопросы, но их я потом задам по мере выполнения проекта. что то для первого раза слишком серьезный проект взял ))))))
1. Есть ли возможность в ПЛК запрограммировать программу "ТРМ", например задать включение и отключение питание поступающее на ТЭНы, при температуре скажем так от 190 С - включение, а при 210 С - отключение, 2. как к ПЛК подключить датчик например термопару? 3. Какие библиотеки можно использовать по данной задаче, 4. и какая маркировка ПЛК должна быть?
Вложение 17454Они у Вас вообще не привязаны
Добрый день. Имеется модуль МВ110-32ДН. Свежекупленый. На диске с ним нет в библиотеке такого модуля. На сайте тоже не нашел. Где можно взять данную библиотеку.
Библиотеку?! Вообще о таком не слышал. Номера регистров Modbus в руководстве ведь указаны — никаких специальных библиотек именно для 32ДН не требуется.
все исправил. работает. получилось два раза назначил переменные. и в конфигураци и и в самой программе. прилагаю программу панели (кому интересно).
Сколько в одном ПЛК можно сделать ПИД регуляторов для одновременной работы?