Единственное, что мне не понятно, это то что в проекте Вы пытаетесь занять порт RS485-1 как для мастера, так и для слейва.
Это осознано или ошибка?
Единственное, что мне не понятно, это то что в проекте Вы пытаетесь занять порт RS485-1 как для мастера, так и для слейва.
Это осознано или ошибка?
И еще. Вы сеть инициализируете дважды.
Первый раз после if FirstScan пишите Disp0.pModule[1] := adr();
А затем вызываете функцию Initialization(). Где делаете ровно тоже самое.
Это не приводит к ошибке, но лучше оставить инициализацию в одном месте.
Ох спасибо вам большое! А можно про порт поподробнее?
В Плк.прг сделал так
IF FirstScan THEN
Initialization();
FirstScan := FALSE;
END_IF;
При инициализации сети мастера (DispatcherModbus), вы задаете ComPort=0 (т.е. как я понимаю RS485-1).
И при конфигурации слейва (в конфигураторе) у вас используется RS485-1.
Т.е. вы на один порт пытаетесь повесить и опрос мастером сети модулей МВ110-8А и через этот же порт сделать контроллер слейвом для панели и скада.
Так у вас ничего не получится. Будут ошибки в обоих сетях.
Перенесите опрос панели на порт RS232.
Да, лучше так.
Про порты понял, не использую их, просто когда TCP не было висели) поудалял там где не нужно. Спасибо за то, что указали на ошибки)
Кирилл, подскажите пожалуйста, сейчас добавил еще 2 8АС, у 8А ошибок modbusErrCnt =0, а у 8АС набигает за 10 минут штук под 200-300 на одном, а на другом около 100, Что лучше уменьшать скорость на всех модулях, или же играться с PollingTime и Timeout?
И еще вопрос, pollingStatistic - как я понимаю статистика времени опроса, а readingStatistic -статистика времени чтения?
Попробуйте увеличить FramingTime у диспетчера.
Но в целом, как я понимаю некоторый процент ошибок в сети RS-485 - это норма. Точнее это вопрос, которым я еще собираюсь заняться - написать в службу технической поддержки. Но я тоже наблюдаю, что у меня периодически проскакивают ошибки сети для разных модулей.
PollingStatistic - это статистика между опросами модуля. В идеале PollingStatistic.Middle должно быть равно PollingTime, т.е. как только истекло время периода опроса, так сразу модуль получил доступ к сети.
ReadingStatistic - это статистика времени, которое модуль тратит на чтение (опрос). Другими словами - это то время, которое модуль занимает порт.
Да и еще для увеличения скорости опроса (я так понимаю, что это главная задача), уменьшайте Timeout. Я проводил эксперименты, и могу сказать, что если модуль не ответил за 50мс, то он не ответит уже и ждать дольше нет смысла.
Я обычно выставляю Timeout = 50мс, MaxAttempts (максимальное количество попыток опроса одного модуля) = 2 или 3.
Понял Вас, спасибо учту, сейчас добавил МУ 110 16Р -2 шт, работают всего 6 модулей) занимаемся 8ДФ, с ними сложней, му по примеру важего 32Р были сделаны. Спасибо за данный диспетчер, даже сейчас уже видим что скорость по сравнению с Конфигуратор, небо и земля.
Кирилл, а подскажите пожалуйста, каким образом лучше организовать показ ошибок, на подобии ласт еррор, использовать base.Error?