А, то я смотрел ни где не видел выбора RS232 или RS485, просто Modbus и на выбор:RTU или ASCII
Вид для печати
Вроде должно работать, тут проблема скорее в другом Вложение 78335
Решил собрать всю свою солянку в кучу: 2ТРМ1+ПЛК63 по RS485, ПЛК63+виртуальный контроллер по RS232, ПЧ+виртуальный контроллер по RS485, СП310+виртуальный контроллер по ethernet, виртуальный контроллер+Скада Simp Light по ethernet(может через ОПС-сервер).
Есть ли какой нюанс по передачи данных с ТРМ через ПЛК63 в виртуальный контроллер? Ведь в ТРМ Float Вложение 78336, а в виртуальном контроллере WORD Вложение 78337. Как лучше сделать?
Для того чтобы преобразовать, вы сначала его принять должны как FLOAT.
Просто надо принять 2 штуки WORD и из них собрать FLOAT, для этого надо просто поставить читать 2 регистра, а не 1 как у вас.
Собрать флоат можно написав функцию или использовать готовый блок WORD_2_REAL из биб-ки Owen.
Или есть ещё способ Объединение.
Но тут опять, как сделать в таком случае плк 63 слэйвом через библиотеку для виртуального контроллера?
Да, ПЛК63 тут по сути не нужен. Я просто хочу собрать все в кучу для закрепления материала и перейти к написанию своей первой программы на ST уже с аналоговыми сигналами, пока не появится возможность достать более современный плк.
Сейчас пересмотрел свои старые проекты и получается я еще ни разу не делал ПЛК63 слейвом через RS232, что мне сейчас как раз требуется, так как на RS485 висит 2ТРМ1
Где его слейв адрес для RS232? Или у них в одном параметре и для 232 и 485 Вложение 78343
Не соединяется ПЛК63 с Codesys 3.5 Вложение 78346
А с Codesys 2.3 без проблем Вложение 78347
Проекты
Я всегда через этот переходник Вложение 78350
Конечно, порт и настройки проверил, они в принципе такие же как и у Codesys 2.3, только адрес 16
Соединил по RS232, через переходник за 2 минуты, всё работает, скрин Вложение 78351
Вирт. ПЛК 3.5 и ПЛК154, через порт Debag 232
и даже собрал REAL из 2 WORD, переменные массива переставил наоборот, на скрине всё есть
А где вы выбрали RS232? У меня на выбор только Modbus COM Вложение 78352
Это без разницы, работает и так. Уже проверил.
Просто я создал проект для ПЛК210, а потом обновил (заменил) на Вирт. ПЛК и удалил Овен Клауд из задач.
С адресами вы напутали в слейве Float по 2 регистра, адреса 82,84,86, а в мастере читаете адреса 82,83,84 по 1 регистру.
Автоперезапуск, галку не поставили.
Заработало!) Надо было кабель поменять, через родной не цеплялся Вложение 78368
Считать все получилось Вложение 78372 Вложение 78373
Теперь 2 WORD передать в ПЛК63, но ПЛК63 не принимает WORD, а принимает Real или ближайший к WORD Uint
Получилось. Спасибо! Вложение 78374
Все-таки сколько в АСУ ТП нюансов!
Добавил к схеме СП310 по ethernet. Далее собираюсь подцеплять ПЧ и Скаду.
Единственно, слабо представляю как организовать управление записью уставки(SP) канала ТРМ с 2 мест. То есть, чтобы уставку 2ТРМ1 SP1 и SP2 можно было задавать с экрана панели и с экрана скады. Как в таком случае будет происходить выбор, что записывать в переменную, привязанную к уставке?
А язык ST зачем изучали? Пишите ФБ и переключаете из 2 мест Вложение 78417
Скрытый текст:
Спасибо!
Отпуск закончился, теперь заниматься получится только вечерами(
Проводов куча) Вложение 78437
Таким образом записанные переменные, виртуальный контроллер считает флоат, отправленный с ОПС-сервера Овен?Вложение 78474
Просто до этого можно было группировать по 2 WORD, а здесь нет такого
Вот так для получения , аналогично для отдачи Вложение 78482
Можете принять как массив WORD, у меня в примере, с прямым адресом AT%IW0 и выцепить нужные регистры массива [12],[13] и [14],[15] , собрав из них REAL,
можете принять как массив REAL с адресом AT%IW12, тогда собирать уже не надо, для этого достаточно в мастере положить по этим же адресам
2 штуки REAL, с правильно расставленными регистрами.
И в работе Вложение 78483 получаю 4 WORD, которые автоматом отображаются как 2 REAL
ОРС-сервер подружил с виртуальным контроллером, передал FLOAT и считалВложение 78497Вложение 78498
Но, не пойму как вытащить этот REAL из массива в переменную, что уже только не пробовал, пишет ошибку.Вложение 78499
У вас в примере программа запущена и не видно детали.
Так тоже не даетВложение 78500
Да, знаю. Ранее писал, что это для практики
Что то вы тупите уже, опять перенесли присвоение в объявления переменных, только в программу. Вложение 78502
Вот мой скрин, обвёл присвоение в левом нижнем углу.
С чего вы решили делать присвоение на ST, если у вас программа на CFC, да ещё в верхнюю часть, где переменные объявляются ?
Вообще не пойму как присвоить вводному блоку в CFC число из массива, ранее делал в ST
Вложение 78501
Если вы присваиваете из массива, то и пишите READ_SP_OPC [0]
READ_SP_OPC [1]
У меня присвоение из массива в переменные REAL Вложение 78504
Разобрался. Все дело в том, что Codesys 3.5 отличается от Codesys 2.3. Я так тоже делал, но у меня выходила ошибка прежде всего из-за того, что нужно было перед переменной прописывать GVL., так как она у меня глобальная, в CS 2.3 такого условия нет. Вложение 78505
Вложение 78506
В глобальные вы сами перенесли, хотя по факту в глобальных нужны только переменные используемые в разных блоках. Если массив используется в одной программе, то и в глобальных он не нужен.
К тому же если в глобальных удалить (закомментировать) атрибут // {attribute 'qualified_only'} , то и GVL. приписывать не надо.
Атрибут закомментировал и компиляция без ошибок без GVL. Вложение 78508 работа Вложение 78509
Спасибо, учту!
Забегу немного наперед с вопросом, знаю, что в Simp Light есть встроенная база данных как и ОРС-сервер, но насколько сложно и есть ли примеры, как привязать к скаде Simp Light стороннюю базу данных SQL и какая лучше?
Немного объясню к чему столько лишних телодвижений. В Казахстане довольно непросто устроиться новичку(без опыта) в АСУ ТП, не хотят возиться, знаю тех кто оканчивал вышку в одном из самых престижных университетов страны по профилю АСУ и его никуда не брали. Но стоило поехать в Россию и сразу находили работу. Так как я за пределы пока не собираюсь, то мне нужно по максималке заполнить резюме и к тому же честно.
Ещё всё зависит от того, как вы эту базу будете использовать, и как эта база интегрирована в саму скаду.
Если скада сама формирует отчёты, то это одно и тут вам не надо знать никаких t-sql, а если вы собираетесь отчёты писать ручками, то это другое. Я вот привык всё руками сам делать, поэтому любая скада где данные идут в mssql подходит. А отчёты уже через ms report service делаю. Но тут надо хоть немного знать внутренности самого sql сервера...