Благодарю! Проверю.
Благодарю! Проверю.
У самого тоже тоже есть вопросы.
1.Для того, чтобы записать( передать ) числовое значение (1) в регистр slave устройства из панели - напрямую , через кнопку , функциональную область не получится? только через макрос?
2. В работе ( панель получает статус работы, считывает значения) , отключаю питание модуля RS485 на slave устройстве , на экране отображается последнее измеренное значение и статус работы - работа. Возможно ли как то организовать при потере связи со slave устройством обнулять данные или изменять статус, может выводить индикацию - потеря связи?
Последний раз редактировалось Евгений Кислов; 19.11.2018 в 14:50.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Нужна достоверная информация.
В общем виде задача стоит так - есть СП307-Р, опрашивающая через PLC-порт 4 ведомых устройства, разбитые на пары 1, 2 - шкаф управления ШУ №1 и 3, 4 - шкаф управления ШУ №2. В штатном режиме СП307-Р подает команду разрешения работы одного из ШУ (раз в сутки меняя работающий ШУ).
Стоит задача - при потере связи с устройствами активного ШУ достоверно обнаружить потерю связи с ним и подать команду разрешения работы на неактивный ШУ.
Хочу для этого использовать PSB51, но нужна дополнительная информация. Бит описан как бит ошибки обмена.
Когда он устанавливается? У меня несколько устройств, читаю информацию с разных адресов этих устройств. Допустим, обмен с устройствами 1, 2 ШУ1 прекратился, а обмен с 3, 4 ШУ2 идет. PSB51 устанавливается после стабильной ошибки связи в течении тайм-аута, или после каждого обмена с любым ведомым устройством?
Какое формальное описание "достоверной потери связи" ?
Отсутствие ответа на 1, 5, 10 последовательных запросов? Или полное отсутствие ответов в течение некого заданного интервала времени?
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Первое уточнение - СП307-Р - ведущее (master) устройство на канале PLC - RS-485 c протоколом обмена Modbus RTU.
К нему подключены четыре ведомых (slave) устройства с таким же протоколом, адреса 1, 2, 3, 4, сгруппированные в шкафы управления.
1, 2 - ШУ1, 3, 4 - ШУ2. Чтобы Вам было приятнее, скажу что устройства с адресами 1, 3 - это ПР200 Вашего производства.
Именно обмен с ПР200 - адреса 1, 3 - я и хочу контролировать, знать, оборвался обмен или нет.
Для обмена используются как элементы экрана - табло, индикаторы битов, так и программы в макросах (Write, Read).
Задача контроля наличия обмена ведомых устройств на асинхронном последовательном канале связи в общем виде может ставиться и решаться по-разному,
Вы ,как разработчик, наверное много сможете об этом рассказать в узком кругу, а я уточню вопрос.
В идеале это получение информации о том, что с конкретным устройством, с конкретным адресом, нет связи, к примеру за заданное время тайм-аута, или на заданное число попыток связи.
Моя субъективная точка зрения - удобнее использовать настраиваемый для каждого ведомого устройства тайм-аут обмена, так как производители приборов иногда дают в РЭ время на ответ чуть
ли не в полсекунды, и на одном канале мы можем, настроив адреса, скорости, протокол обмена использовать приборы десятка разных производителей (во всяком случае, у меня такой опыт
при сборе информации с подстанции был, оборудование было другого производителя, я такими задачами в разных отраслях занимаюсь с 1995 года).
Как сделано в СП307-Р я не знаю, потому и спрашиваю расширенный ответ.
Насколько понимаю, такой информации, по каждому устройству, подключенному к порту PLC,
используя СП307-Р я не получу, так как для порта PLC имеется только один бит признака ошибки обмена, который привязан к каналу PLC.
Никаких претензий к этому нет, устройство использую "как есть".
Я пытаюсь узнать еще раз от разработчика - каким образом формируется бит признака ошибки связи в СП307-Р,
чтобы как-то попробовать использовать его для своих задач.
Возможно, я смогу выявить обрыв связи с подключенным устройством другим способом.
Например, контролировать бит ошибки сразу после записи или чтения через порт PLC в макросе - если бит формируется по результатам этого обмена.
Подробного описания в руководстве нет, есть просто "бит такой-то", "а вот этот параметр - тайм-аут". Как реализовано формирование этого бита?
В используемом ПР200 нет вообще никакого контроля тайм-аута обмена с ведущим устройством при работе в качестве ведомого устройства, там я использую формируемый
в СП307 меандр для контроля обрыва связи, раз разработчик не дал иного. В ведущем (master) СП307, не имеющем FBD-подобных средств, не хотелось бы
городить огород с контролем меандра, формируемого в ведомом (slave) ПР-200.
Конкретный пример - устройство, подключенное к PLC-порту перестало работать:
1. Панель отправляет запрос и не получает ответ в течение времени PFW38 мс - детектируется отсутствие ответа: PSW72 увеличивается на +1
2. Панель отправляет повторный запрос
3. Если на X последовательных запросов (где X = Повторов в настройках порта) нет ответов, то
- бит PSB51 устанавливается в TRUE на некоторое (зависящее от ряда факторов, в т.ч. таймаута) время
- PSW71 увеличивается на +1 (сеанс опроса не удался). Фактически, при полном отсутствии связи за все время работы PSW71 = PSW72 / Повторов.
- в регистр PSW76 записывается адрес устройства, с которым не состоялся сеанс опроса
После этого начинается следующий сеанс обмена: сброс PSB51, отправка запроса (от следующего элемента / макроса) и так далее.
Если требуется тщательный контроль обмена - то проще весь обмен перенести в макросы: функции Read(s), Write(s) возвращают соответствующий бит (TRUE - на запрос пришел корректный ответ, FALSE - что-то пошло не так).
Кроме того, можно будет оптимизировать обмен за счет групповых запросов.
Последний раз редактировалось Евгений Кислов; 22.11.2018 в 07:11.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | личка на форуме - не подходит
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Евгений, спасибо за подробный ответ с рекомендациями.
Решение найдено, более удобное чем контроль меандра..
В этой связи дополнительный вопрос.
Насколько понимаю, функции чтения и записи (я их уже использую в макросах) Read(s), Write(s) возвращают значение ошибки в бите.
Однако, в справке, вызываемой по F1 и в файле руководства пользователя это никак не описано. Если Вас не затруднит, приведите пример использования возвращаемого функциями.
Со своей стороны, я могу предположить, что надо ставить в условие саму функцию Read(s) или Write(s), по результату устанавливать/сбрасывать бит в незарезервированной области битовой памяти командами SetPSB(n)/ResetPSB(n) либо выполнить необходимые по задаче действия.
if (Read(......))
{
SetPSB(n); //пришел корректный ответ
...
}
else
{
ResetPSB(n); //нет корректного ответа либо нет вообще никакого ответа
}
if (Read(......))
{
....; //пришел корректный ответ
...
}
else
{
....; //нет корректного ответа либо нет вообще никакого ответа
}
Последний раз редактировалось Евгений Кислов; 22.11.2018 в 07:11.
В тему управления обменом с устройствами.
бит PFW 130. Необходимо откл обмен с устройствами. Переключатель , в нем настройки PFW 316.1 при вкл откл-ся связь при выкл включается? адрес устройства 1,( пробовал- ничего не происходит). читал несколько раз РП на последней странице...как то мудрено