Охтиёёёё!!! Это правда? а ПР205 справится с такой задачей? я их три штуки заказал, только срок поставки дикий, почти два месяца...
Вид для печати
Валенок выручите пожалуйста, на вас надежда!...
Вы хотите сложить целое с плавающей?
Вложение 80216Вложение 80217
Моя реакция похожа на фразу Мусагалиева после слова Агурец...
https://youtube.com/shorts/1OGFI4sdh...aBfRWO8n6OP6kT
Приветствую Уважаемые.
Подскажите или направьте почитать - как определить отключение слейва от панели? Вопросы про слейв-контроллер и игру с неким контрольным битом (менять периодически) - я находил. Но у меня слейвы - ТРМ-ки и пара модулей МК110. Как определить, что какой то из них вывалился из сети 485?
ЗЫ спрашивал выше, на всякий случай еще раз - где то можно кроме неработающего ютуба - видео примеры работы с панелью посмотреть? мож перекладывали куда или скачать можно где?
Все верно, есть системные регистры.
https://owen.ru/uploads/388/sp3xx_rp_2.2.pdf
стр. 195.
Вложение 80227
К сожалению, только для TCP-устройств. А вот для PLC и Download такого нет (наверное).
Но есть возможность запретить панели опрашивать устройства (стр. 245), если знаешь их адресa.
Имеется в виду PSW66 и PSW76?
А как этим пользоваться? К примеру есть цикл опроса 8 слейвоф - как будет меняться состояние регистра и как отловить, что к примеру три из восьми "покинули чат"?
То есть мысль такая - отвалились по той ли иной причине несколько слейвоф (ну обесточили их временно например) - дабы не тормозить панель - после 3-4 превышений таймаута ожидания с данного адреса повесить бит "запрет обмена".
Может быть грубо, но все же...
Вы хотите построить систему с модулями, трмами, сделать проверку связи, исключение из опроса, но стали экономить на контроллере и решили все это реализовать на панели, которая вообще для этого не предназначена.
на всех панелях пишут, что в панель нельзя использовать в качестве плк и реализовывать на ней логику управления процессами.
Кроилово ведет к попадалову.
Так же про обесточивание и т.д. Если у Вас несколько процессов, которые вы сводите на одну панель, опять же из-за экономии, то ни к чему хорошему это не приведет. Стройте изначально распределенную систему управления, а если нет, то не пофиг ли на торможение панели если Вы вырубили половину оборудования и весь тех процесс остановлен?
Возможно так. Однако я ограничен ТЗ - и панель используется только для визуализации, система распределена и автономна по параметрам управления. ("Это не мои тараканы - это ихние")
И потом - абстрагируясь - задача - опросить слейвы, выдать оператору информацию с распределенной системы из десятка-полтора мест, нарисовать тренды, выдать аварийные сообщения. Ни управления, ни математики запредельной, ни ПИД - на кой контроллер? Панель является мастером, соответственно должна по идее определять кто из абонентов в сети. Или я слишком много ожидаю от панели?
При этом авария или отключение только одного модбас сервера приведёт к тормозам на панели в 3 секунды. А если ещё 1 трм отключите на ремонт, то ещё 3 секунды... Ну флаг вам в руки. Даже ПЛК, если в программе не продумать действия при таких ситуациях, опрос работающих устройств отвалится..
При выведении в ремонт (сознательном отключении) можно предусмотреть окно, где можно вывести из обмена - переключив служебный бит.
Вопрос как выявить при работе, раз нет готовых решений в панели. К примеру сделать служебный опрос раз в 5-10 секунд конкретного слейва и при трех-пяти таймаутах опять таки переключить битик и вывесить надпись "потеря связи с устройством таким-то".
Да, можно. Изучайте документацию на использование скриптов в панели и реализуйте, служебные биты есть, обработчик за Вами.
Только не забудьте, что когда слейв у Вас отвалился, то панель уже зависла и три-пять таймаутов уже идут с зависшей наглухо панелью. И скрипты будут крутиться в зависшей панелью.
Раз у Вас огромная система и надо собирать со всех данные и модули могут быть оффлайн, ставьте промежуточный контроллер, на нем опрос и обработка, на панели отображение.
Вложение 80257
Вы пишете, что надо отключать один из модулей из опроса, так как при отключения этого модуля панель начинает зависать, не отвечает на нажатия и.т.д.
Логичное и описанное в РЭ поведение устройства.
Возможно и остальные процессы в панели в это время "подвисают", в ней же нет (наверное) задач, тасков и параллельных потоков, все в одном цикле и если нет ответа от устройства, то панель ждет таймаут. Как тогда будет работать скрипты и отключать слейв, если она висит в таймауте ответа?
Хорошо, через несколько подвисаний определили что нет ответа от слейва, отключили его. Что дальше? Через сколько опять проверять с ним связь? Допустим через 30 сек например. Слейв отключен и панель опять зависает в таймауте, а оператор в это время то-то там нажимает, а панель не отвечает. И так по кругу. Ненадежно это все.
1. Панель опрашивает только те Modbus-устройства, регистры которых отображаются в текущий момент на экране.
2. Если после всех попыток получить значение регистра не выходит - выводится окно на 2 сек. с указанием того, что связь с устройством № ? потерянна, и так для каждого регистра.
3. Во время выдачи этого сообщения, панель на касания не реагирует (подвисает).
Есть 2 способа это обойти:
1. Выставить бит, который будет запрещать панели опрашивать устройство с определенным адресом (надо знать адреса и соответствующие биты + отдельное окно для управления ими).
2. Опрашивать в макросах с обработкой ошибок и заполнять результатами внутренние регистры, которые потом и отображать на экранах.
Я понимаю что задачи, в том числе скорость обработка разные. В моем случае это не так важно как определить что показания на панели не достоверны. Далее устройство отключаем, подаем сигнал и ждём электрика с тестером и отверткой - то бишь авто возобновления обмена не требуется.
Следы то есть, но чтобы их найти и принять решение, Вам придется использовать макросы, которые должны активизироваться в нужный момент.
Я, например, по результату функции чтения:
Вложение 80261
соответственно вижу какой SlaveID не прочитался и сам выставляю нужный SetPSB или PSW[?] |= 0x01
Я же Вам писал ранее в этом сообщении https://owen.ru/forum/showthread.php...l=1#post451379
Посмотрите внимательно вложение, есть прям регистр где записывается адрес устройства с которым проблемы со связью.
Я это помню - вопрос встал в том что если отвалилось несколько слейвоф то значение в процессе обмена меняется. И Что там будет в момент обращения к нему не понятно.
Вообще исходя из всего сказанного вижу два варианта:
1. Реализовывать обмен через макрос целиком, отслеживая ответы онлайн.
2. Запускать макрос который к примеру раз в 10-20 сек делает трехкратный опрос по одному регистру со слейвов и принимает на основании ответов решение - жив пациент или нет, и выставляет запрет обмена.
Добрый день!
Возник вопрос касательно панели оператора СП307-Р.
Какое количество архивных записей может храниться во внутренней памяти панели и какого объема.
Для ведения архива на USB в руководстве указан максимальный объем записи в 127 регистров и настройка перезаписи по заполнению. Для внутреннего такого описания не нашла.
Внутренней памяти PFW всего 4 Мбайт, тут примерный расчёт количества записей и нужного кол-ва регистров.
Слишком часто записывать не стоит, чем реже записи и больше глубина (неделя, месяц), тем дольше проживёт память.
https://owen.ru/forum/showthread.php...&page=158#1573
Всем доброго времени суток! Возникла не большая проблема с отображением температуры на панели (СП310). Значение беру с ПЛК 110, скажем в плк температура 8,573 а на панели отображет некорректное значение, которое ещё постоянно меняется, например 15 + 5, -0,0, и тд. Вложение 80368 Вложение 80369 Вложение 80370
Поняла, спасибо за быстрый ответ!
Вы умудрились сделать несколько ошибок. Выравнивание смещает температуру в ПЛК с 1 адреса во второй. Все 32 битные переменные, должны быть с чётными адресами.
В ПЛК надо вставить ещё 1 регистр, например 2 штуки 8 бит или один 2 BYTE. В панели поставить адрес 4х 2
Если опять будет не правильно, поставить в настройках Панели, галку Старшим регистром вперёд.
Добрый день!
Подскажите, как Панель СП3** Мастер может узнать, что потеряна связь с ПР200 Слейв?
Вот такой код работает. При потере связи - пищит
На главном экране функциональная область с циклом в 1 сек.
Цитата:
WORD count;
if (PSW[260] < PSW[258] )
{
Beep();
}
if (GetPSBStatus(6))
{
PSW[261] = 10;
count = count + 1;
if (count>10)
{
PSW[260] = PSW[258];
count = 0;
}
}
else
{
PSW[261] = 20;
}
Обычно делается так, одна ФО (функц. область), по по фронту бита PSB4 раз в секунду включает бит связи, например 0х 0, ПР должна этот бит сбрасывать.
Вторая ФО, с циклом 5 сек (задержка 5 сек, галку снять), по биту связи открывает окно "Нет связи", третья ФО по спаду бита закрывает окно "Нет связи".
Пока бит сбрасывается, окно закрыто, как перестанет сбрасываться, через 5 сек появится окно.
Бит связи, любой свободный бит в обмене, например из маски бит аварий. Варианты сброса бита связи в ПР200 на скрине Вложение 80411
Что-то ваш вариант у меня не работает.
При последовательном режиме выполнения пищит только при загрузке.
При параллельном - постоянно.
Но я попробовал через PSB51, результат меня удовлетворил.
День добрый.
Подскажите пожалуйста, при импорте из файла csv, с количеством строк, к примеру 20, ставлю количество регистров 20, и все прекрасно импортируется, но вот если поставить больше, то панель сп307 зависает, хотя в эмуляторе отрабатывает.