PDA

Просмотр полной версии : Отправить байт из адастры в контроллер



Stas
08.05.2013, 12:22
Здравствуйте,
написал маленькую программу для контроллера ПЛК110-220.30.Р-М
подключил к входу 1 кнопку, при нажатии кнопки бит передаётся по TCP в адастру без проблем.

Теперь хочу сделать, чтоб при нажатии в адастре кнопки, бит передавался в CoDeSys, но что то не получается.
В CoDeSys что нужно добавить чтоб принять этот бит?
Программу прикладываю подскажите что не так?

Yegor
09.05.2013, 07:17
В CoDeSys что нужно добавить чтоб принять этот бит?Ничего. Переменная adastra_knop и есть этот бит.

И ещё. Вот так не пишут:
IF knopka=TRUE
THEN vihod1:=TRUE;
ELSE vihod1:=FALSE;
END_IF;Пишут так: vihod1 := knopka.

Stas
13.05.2013, 08:08
1) У меня получается, что нулевой бит уходит в адастру, а первый наоборот приходит из адастры , так можно делать в одном восьмибитном подэлементе? Там ведь модбас слейв у меня. Адастра как мастер считывает нулевой бит передаваемый из контроллера, а из адастры контроллер может прочитать если в нём слейв стоит?

Yegor
13.05.2013, 10:56
Разделение «слейв-мастер» определяет только инициатора обмена. В ПЛК ничто не мешает считывать и записывать одни и те же регистры с обеих сторон. Так что всё зависит от возможностей этой вашей адастры. Но в любом случае лучше выделить отдельные регистры для передачи в скаду и отдельные — для приёма из неё.

Stas
13.05.2013, 12:46
В Кодесис создан у меня подэлемент 8 бит,
в Тrace mode у меня канал 16-битный , я отправляю по сети бит1=1, в моей программе кодесис я должен увидеть этот бит?

Yegor
13.05.2013, 12:52
Да, должны.

capzap
13.05.2013, 12:54
Да, должны.

можно и не увидеть, добавлять надо еще один 8-и битный модуль, трейс и просто устройства с модбасом по разному передают слова, поэтому второй модуль даст гарантию что увидите бит, если его небыло в первом модуле