PDA

Просмотр полной версии : Два мастера Modbus на одном PLC



Igor_Pavlov
06.12.2012, 14:24
Имею следующую конфигурацию:
PLC100 с модулем GPRS - ПМ01 и панелькой - weintek 6070i
Задача - подвязать панельку как слейв, т.е. нужно, чтобы PLC обязательно был мастером. Модем тоже должен быть слейвом, т.к. IP симки динамический, а OPC-сервера статический, поэтому PLC также должен выступать в роли мастера по отношению к модему.

Пытался решить следующим образом:
1. Хотел, чтобы на RS-485 висело 2 мастера - т.к. нельзя создать одного мастера на эти 2 устройства, модем требует своего собственного узла.
Причем первый работает в режиме TCP, а второй соответственно serial.
Не вышло. Либо модем либо панель отваливаются.
Решил попробовать повесить на RS-485 хотя бы мастера ( для модема ) и слейва (для панельки), но тоже не вышло! Хотя это противоречит протоколу RS-485-2w. Я использовал 2-ух проводную связь именно с этой целью, так как она не обязывает четко задавать мастера и слейва. Одно и тоже устройство может быть и мастером и слейвом. Так как в любой промежуток времени только 2 устройства могут взаимодействовать, а остальные выводятся в высокоомное Z-состояние и таким образом отключаются от шины. Поэтому режим, протокол обмена данными и функции связи могут быть любыми и в данный момент определяться конфигурацией тех устройств, которые взаимодействуют между собой.
Но, это почему то не работает. Интересно, почему?

Ладно, дальше я решил развести мастеров по разным портам - одного на RS-485(для панели) а другого на RS-232 (DB-9F) (для модема). Спаял кабель для подключения модема, все расключил - и заработало, но...недолго, а именно в пределах от 40с - 15 мин. Затем PLC спонтанно и неожиданно перезагружается и после старта все повторяется циклически. В рабочий период времени все работает без сбоев, передача и согласование данных идет во всех направлениях без задержек и ошибок, но потом кранты по непонятной причине.

Далее я слелал панель мастером и таким образом в конфигурации PLC у меня остался лишь один мастер на RS-232 и один слейв на RS-485.
В этом случае все работает без сбоев и неопределенно долго, но это мне не подходит, потому что я планирую вешать еще MB8A и еще пару модулей через RS-485 и мне поэтому нужен мастер на RS-485.
Как-то так. Будут у кого советы?

И еще - интересно, но именно такая же перезагрузка происходит при закрытии удаленного OPC-сервера. Если рвется соединение с интернетом, ничего не происходит, просто модем переподключает интеренет и продолжает работать в штатном режиме, но стоит только нажать кнопку "стоп" на удаленном OPC и PLC незамедлительно перезагружается - мистика или кривые руки разработчиков?

Пантелеев Дмитрий
06.12.2012, 15:17
Какой ОРС сервер используете?

Igor_Pavlov
06.12.2012, 16:05
Lectus OPC

Igor_Pavlov
06.12.2012, 17:24
Ладно, проблема решилась добавлением Universal Network module для RS-232, хотя я не понимаю, что это изменило и какое значение имеет. Сейчас 2 мастера работают по разным портам.
Но вот добавить 2-ух мастеров на один RS-485 так и не удалось. И мне еще вот что не ясно - в настройках опроса модема контроллером я выставил время - 1с, но ПМ01 мигает светодиодом асинхронно к этому времени, когда же я делал безуспешную попытку создания 2 мастеров на одном порту то я также выставил 1с, но в этом случае он мигал синхронно, что вполне логично, ведь устройства RS-485 отключают только выходные каскады, а чтение шины данных у них идет постоянно для всех подключенных к шине устройств. Поэтому я думаю, что обмен данными с модемом более сложен и не перебивает ли его грубо говоря второй мастер на том же порту? И еще я не задавал никаких таймингов, понятно, что 2 мастера не могут одновременно работать, поэтому нужно смещение, вводится ли оно автоматически программой или же его нужно вручную прописывать в настройках? Куда вообще следует копать? И насколько безопасно играться с этими таймингами? Ведь если 2 устройства (мастера) одновременно подключат свои выходные каскады и один будет в 1, а второй в 0, то собственно сквозной ток ничем не будет ограничиваться. Допускает ли такой режим PLC, есть в нем блокировки от таких ошибок?

Terrano1992
07.12.2012, 12:23
если 2 устройства (мастера) одновременно подключат свои выходные каскады и один будет в 1, а второй в 0, то собственно сквозной ток ничем не будет ограничиваться
Если вы о физическом уровне - ограничение тока, отдаваемого в линию связи, обеспечивается аппаратными средствами самой микросхемы драйвера RS-485 (MAX485 или любой его аналог). Datasheet на MAX485 обещает, что драйвер способен вытерпеть замыкание проводников линии связи (между собой, на "землю" или на +Vcc) в течение неограниченно долгого времени.