PDA

Просмотр полной версии : Непонятно в чем проблема



Констанитин
27.10.2009, 16:19
Немогу понять почему 3 входных аналоговых сигнала типа REAL некорректно работают. Программу пишу на ST. При изменении одного входного сигнала, изменяются остальные 2. Если не сложно помогите пожалуйста, заранее спасибо.

Николаев Андрей
27.10.2009, 16:33
Полное название контроллера и версия Target файла?

Констанитин
27.10.2009, 16:40
я как бы без привязки к контроллеру, просто логику ошибки понять

Логвиненко Андрей
27.10.2009, 17:36
1 В PLC_PRG не может быть VAR_INPUT, переменные области ввода-вывода объявляются в разделе VAR или в конфигурации.
2 IB - 1 байт, REAL занимает 4 байта, должно быть ID. в данном примере есть наложение адресов.

Констанитин
27.10.2009, 18:03
Огронейшее спасибо Андрей, все теперь нормально работает.
А по поводу VAR_INPUT в PLC_PRG можно по подробней. Это просто некорректно или это в корне не правильно и так нельзя вообще.

Логвиненко Андрей
27.10.2009, 18:08
VAR_INPUT это входные переменные для POU, вызываемого из другого POU а не входы контролера.
PLC_PRG по определению не может быть вызвана.
Учите матчасть(CoDeSys).

Crusash
28.10.2009, 13:01
1 В PLC_PRG не может быть VAR_INPUT, переменные области ввода-вывода объявляются в разделе VAR или в конфигурации.


В PLC_PRG можно использовать VAR_INPUT и это будет даже корректно - например если необходимо изменять локальные переменные PLC_PRG из какой-нибудь другой процедуры, а связываться с глобальными переменными или делать это через указатели не желательно...

Логвиненко Андрей
28.10.2009, 13:38
Если соответственно настроить task configuration, то можно делать все что угодно, но тема эта о вещах элементарных.