PDA

Просмотреть полную версию : Постоянная перезапись переменной в слейве (решено)


activ8
08.05.2014, 09:05
Доброго всем дня!

Pixel выступает в роли мастера в сети ТСР. Связь со слейвом устанавливается, переменные забиты в карту как integer R/W (out). Xтение/запись на Pixel происходит без проблем. НО, на слейве переменныe изменить невозможно. Т.е. если я пытаюсь изменить переменную на самом слейве, она перезаписывается Pixel'ем в ее предыдущее значение. Проверял слейв в работе с Modscan - все меняется как с одной, так и с другой стороны.

В RTU та же ситуация...

При этом если Pixel выступает сам как слейв, то все без проблем. По-крайней мере в ТСР.

Просьба подсказать, что можно настроить?

Михаил.

Nick
08.05.2014, 10:08
сделайте запись по команде и сами управляйте процессом.
для этого поставьте цикл опроса 0 - у переменной появится вход управления.
а иначе пиксель пишет свое значение постоянно с заданным циклом.

activ8
08.05.2014, 11:36
Nick, так и ведь и чтение прекратится? Или при изменении на слейве последний "за ниточку дернет"?

Nick
08.05.2014, 12:15
Nick, так и ведь и чтение прекратится? Или при изменении на слейве последний "за ниточку дернет"?

R(out) еще один прочитает, его и используйте.
а вообще это решение "через одно место", если нужно использовать цифирь на стороне слейва "поизменению", это нужно решать на стороне слейва посредством логики программы фбд слейва. модбас на то не заточен, сказали мастеру писать с таким циклом он с таким циклом и фигачит запросами, откуда ему знать, что там слейв у себя в мозгах думает.

activ8
09.05.2014, 03:36
А функционал этот не зря реализован как в модскане, так и в других контроллерах.

Это более чем логично - иметь возможность изменить уставку как с термостата, к примеру, так и по времени суток или другому условию.

Arsie
09.05.2014, 21:26
А функционал этот не зря реализован как в модскане, так и в других контроллерах.


Извините, но вы не понимаете, о чём говорите.

Модскан по умолчанию отправляет запросы записи по требованию.

Лоджик по умолчанию настраивает запросы записи циклически.

Сменив время опроса на нулевое вы перенастроите циклический опрос на опрос по требованию. И не придётся здесь писать эти ненужные слова, которые вы написали.

Если одну и ту же нужно читать циклически и записывать по требованию, просто создайте две одинаковые переменные с разными настройками: для работы с холдинг регистром по адресу 42h вам нужно создать две переменные. "Ya_samij_umnij" с направлением R/W(out), адресом 42h и временем опроса 0. Это будет запись по требованию. Вторая переменная "Ya_samij_krasivij" с направлением R(out), адресом 42h и временем опроса не 0. Это будет циклическое чтение.