Добрый день! Столкнулся с такой ситуацией. Контроллер MicroLogix1500 работает в качестве slave-а передаю на Siemens S7-400 данные по Modbus RTU. На сименсе весь модбас написан вручную,читает все нормально без проблем, а при записи битовых значений отправляет "1", но не обнуляет ее, программисты сименса заявляют мне,что они всегда так делают и то что у себя в контроллере я должен ее обнулять. Подскажите плиз кто прав? и каким образом обнулять эти пришедшие "1".
Заранее благодарен!!!
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
MicroLogix1500
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 03 фев 2011, 08:48
- Имя: Карпенко Виталий Викторович
- Страна: Россия
- город/регион: Екатеринбург
-
- здесь недавно
- Сообщения: 17
- Зарегистрирован: 31 янв 2011, 11:00
- Имя: Двоеглазов Дмитрий Николаевич
- Страна: Россия
- город/регион: Кирово-Чепецк
Re: MicroLogix1500
Все верно: в ModBus производится передача управляющего сигнала "1" в виде команды установки бита в 1, в "0" не сбрасывают.
Как только бит стал "1" занесите его в промежуточную переменную и с ней дальше работайте, а бит в массиве ModBus обнулите.
Как только бит стал "1" занесите его в промежуточную переменную и с ней дальше работайте, а бит в массиве ModBus обнулите.
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 03 фев 2011, 08:48
- Имя: Карпенко Виталий Викторович
- Страна: Россия
- город/регион: Екатеринбург
-
- здесь недавно
- Сообщения: 17
- Зарегистрирован: 31 янв 2011, 11:00
- Имя: Двоеглазов Дмитрий Николаевич
- Страна: Россия
- город/регион: Кирово-Чепецк
Re: MicroLogix1500
А вы уверены, что успеете "схватить" и обработать управляющий сигнал до того как посылающая сторона сбросит его обратно в "0". Или вы хотите посылать им подтверждение?!
Подумайте, чем вы недовольны!?
Подумайте, чем вы недовольны!?
-
- почётный участник форума
- Сообщения: 1156
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 343 раза
- Поблагодарили: 232 раза
Re: MicroLogix1500
Сбрасывать или не сбрасывать зависит от назначения этого бита.
Простой пример:
- *_MDB биты приходящие по Modbus,
- что будет, если Dias в контроллере сбросит бит Auto_MDB?
Простой пример:
- *_MDB биты приходящие по Modbus,
- что будет, если Dias в контроллере сбросит бит Auto_MDB?
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- здесь недавно
- Сообщения: 17
- Зарегистрирован: 31 янв 2011, 11:00
- Имя: Двоеглазов Дмитрий Николаевич
- Страна: Россия
- город/регион: Кирово-Чепецк
Re: MicroLogix1500
У вас в логике биты из таблицы ModBus, а не промежуточные переменные.DDmitry писал(а): занесите его в промежуточную переменную и с ней дальше работайте,