Прошу помочь любой информацией по данному вопросу.
Дали задание на контроллере Simatic S200 реализовать на одном контроллере режим Modbus Master,
на втором контроллере тоже 200 серии Modbus Slave.
Цель - передать данные из одного контроллера в другой таким способом.
До этого имел опыт только с контроллерами 300 серии... Контроллер PPI как перевести в режим MODbus не знаю.
Буду благодарен любой информации и исходникам.
[?]: S200 Modbus...
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: S200 Modbus...
курить не любишь?в смысле поиск
https://www.automation.siemens.com/WW/f ... anguage=en
от сюда
https://www.automation.siemens.com/WW/f ... anguage=en
тут же ссылка https://www.automation.siemens.com/micr ... zieren.htm
на https://www.automation.siemens.com/micr ... /t41-e.zip
https://www.automation.siemens.com/WW/f ... anguage=en
от сюда
https://www.automation.siemens.com/WW/f ... anguage=en
тут же ссылка https://www.automation.siemens.com/micr ... zieren.htm
на https://www.automation.siemens.com/micr ... /t41-e.zip
-
- Posts: 24
- Joined: Fri Mar 05, 2010 8:27 am
Re: [?]: S200 Modbus...
Подскажите. Я загрузил в контроллер S200 CPU226 в один проект мастера, во второй CPU226 Modbus slave.
Подкорректировал код чтоб иницилизировался Модбас не на порт 0, а на порт 1.
(наверное у меня контроллер с частично неисправным 0 портом). Где касается чтение байта SDB30 => замена на SDB130.
Сделал так потому, как два контроллера S200 в распоряжении, практически идиентичные CPU226, с разницей только в питании - один питается от 220 вольт, второй от DC 24. И если на одном я вижу контроллер через оба порта,
то на другом только через один. И как думаю, это не есть гут.
Теперь главный вопрос, так как необходим обмен данными необходимо написать кусочек тест использующий функции
процедур Модбас. (чтоб я смог прочесть установленные байты с устройства modbus Slave).
Как я понимаю на Slave я должен как-то обозначить область которая будет передаваться. Как это можно сделать?
Буду благодарен любой помощи в этом вопросе.
Подкорректировал код чтоб иницилизировался Модбас не на порт 0, а на порт 1.
(наверное у меня контроллер с частично неисправным 0 портом). Где касается чтение байта SDB30 => замена на SDB130.
Сделал так потому, как два контроллера S200 в распоряжении, практически идиентичные CPU226, с разницей только в питании - один питается от 220 вольт, второй от DC 24. И если на одном я вижу контроллер через оба порта,
то на другом только через один. И как думаю, это не есть гут.
Теперь главный вопрос, так как необходим обмен данными необходимо написать кусочек тест использующий функции
процедур Модбас. (чтоб я смог прочесть установленные байты с устройства modbus Slave).
Как я понимаю на Slave я должен как-то обозначить область которая будет передаваться. Как это можно сделать?
Буду благодарен любой помощи в этом вопросе.
-
- Posts: 24
- Joined: Fri Mar 05, 2010 8:27 am
Re: [?]: S200 Modbus...
Дошел до того, что в Мастер контроллере прописал функцию записи регистров Modbus в Slave Modbus контроллер.
Инициализация блоков на Мастере дала ошибку четности. (в обоих я установил четный протокол).
В итоге чтоб такого не было, (от обратного ) в блоке инициализации прописал без четности. В обоих контроллерах.
Мониторинг состояния Slave устройства показал, что когда дается команда Modbus Master-ом на запись в Slave контроллер, это приводит к обнулению тех байтов которые используются в Slave устройстве как Hold Registers.
Не могу понять почему так происходит. Должна произойти запись байтов, а не обнуление.
Инициализация блоков на Мастере дала ошибку четности. (в обоих я установил четный протокол).
В итоге чтоб такого не было, (от обратного ) в блоке инициализации прописал без четности. В обоих контроллерах.
Мониторинг состояния Slave устройства показал, что когда дается команда Modbus Master-ом на запись в Slave контроллер, это приводит к обнулению тех байтов которые используются в Slave устройстве как Hold Registers.
Не могу понять почему так происходит. Должна произойти запись байтов, а не обнуление.
-
- Posts: 24
- Joined: Fri Mar 05, 2010 8:27 am
Re: [?]: S200 Modbus...
Все работает... Пример модбаса крайне важно использовать с корректной библиотекой. Только в этом были грабли.