Программируемый логический контроллер Z401

Автор admin, 23 мая 2014, 16:13:25

« назад - далее »

serge197a

Цитата: mike от 01 апреля 2016, 22:10:19
Остался последний момент.
Но это уже у меня вопрос к вам. А зачем вам динамически изменяемые номера регистров подчиненного?
Входы "читать 1...6" и "читать 10...11"

В принципе все. Вам осталось добавить детектор связи с подчиненным и обработку ошибок от него для формирования поведения мастера в случае отсутствия связи.

я пока ждал ответа, решил еще разбить по времени опрос(чтоб не в 1 цикл) и написал обработку ошибок и блок разросся до приличных размеров.
Номера не изменяю динамически, просто так, как шаблон. Во входах макроса прописаны константы.
Спасибо. Все оказалось значительно проще.

Поясните пожалуйста :
"Вам осталось добавить детектор связи с подчиненным"
не совсем понял или я уже это сделал?

mike


mike

Детектор ошибок ошибочный)))
Вы не даете подчиненному шансов!
А вдруг пакет "проглотит" или подчиненный затупит?

Я бы реализовал "отвал" подчиненного по отсутствию строба rdy в течение какого-то разумного времени.
А ошибки использовать по необходимости, если от этого зависит "поведение" алгоритма

mike

Что касается разбивки запроса. Такое кол-во переменных нет смысла разбивать по времени. Вот сотню другую - тут можно подумать.

mike

Все переменные на сцене избыточны для этой задачи.

serge197a

понимаю, но это шаблон. я это для наглядности.
Сейчас перепишу детектор.

mike

#21
Я почти закончил, сейчас выложу
Готово

serge197a

Посмотрите, правильно?
А ваш файл не могу открыть.
сохранил, импортирую. но не открывает.

mike

#23
У меня бета 105.
Должно работать. Что пишет при импорте?

Только что попробовал скачать - открывает без проблем.

serge197a

Все разобрался. При импорте писал, что с таким именем существует,
переименовывал, не понимал, что он требует др. дирректорию.
В общем разобрался.
Проблема в том, что при попытке импорта создается новая папка и я этого не понял.

Переделал, как у Вас, но подскажите в скрине сверху допустимо так ошибку связи проверять?
насколько я понял, у нас параметр еррора тоже фиксируется и я полагал, что если более 5 сек ошибка висит, то ...?
Или все же как у Вас?

mike

Допустимо. Строб появится только в том случае, если чтение успешное. Если пришла ошибка - строб не появится. Это есть в инструкции и в документе по работе в сетях (кстати, очень полезный док. Лежит на сайте в разделе документы. Называется "Работа в Modbus сетях).

Параметр ошибки фиксируется только на момент прихода этой ошибки (это естественно). Можно делать и по ошибке - тут для творчества безграничное поле.
Например, анализируя ошибки, можно строить сканеры регистров, устройств и т.п.

mike

Хотел дать маленький совет.
Вы можете включить вашу программу в симулятор, а к COM порту компьютера подключить подчиненного, которого из симулятора вы сможете опросить.
Так можно отладить программу на однопортовых машинах.

VoronovMaksim88

Цитата: mike от 02 апреля 2016, 07:24:31
Хотел дать маленький совет.
Вы можете включить вашу программу в симулятор, а к COM порту компьютера подключить подчиненного, которого из симулятора вы сможете опросить.
Так можно отладить программу на однопортовых машинах.
А как при этом топология сети будет выглядеть ?

mike

А я в этом топике уже показывал ее.
401+ Рабочая станция.
Только включать надо не отладку в устройстве, а симуляцию.
Тогда 401 начнет посылать запросы к рабочей станции, а она будет их передавать реальному подчиненному через тот порт, который был указан в настройках

serge197a

Здравствуйте mike!
Я тут запись в слейв накидал.
кстати именно прочитав документ с сетями. я перестраховался и в первой версии опроса написал все как в том документе.
Посмотрите пожалуйста правильно ли я сделал ФБ записи. Особенно в плане постучать в слейв при ошибке. Не понял у нас если EN =1, то отправка инициируется один раз по фронту или каждый цикл, пока En=1

Про разнесение опроса по времени- это у меня от опыта работы с Дельтой по модбасу. Дельта больше 3-х регистров в цикле корректно не опросит. нужно разносить. Поэтому и здесь перестраховался.