Я в области программирования контроллеров новичок, поэтому мне не понятно, как можно не использовать конфигуратор. По умолчанию модули ввода вывода ведь отображаются в режиме fieldbus, а мне нужно PLC. Иначе как же я к ним обращусь из программы?
Я попробую перейти с указателей на массивы, но тем не менее повторю вопрос: как объяснить CoDeSys-у, что я таки использую обращения к каналам через указатель, чтобы он их таки обновлял?
адресацию регистров в мануале почитайте. Например, %IW0.0, %QW0.
и от стальной его груди отскакивают стрелы.
Первоначально опубликовано min
По умолчанию модули ввода вывода ведь отображаются в режиме fieldbus, а мне нужно PLC.
я не понял. как это?
и от стальной его груди отскакивают стрелы.
Первоначально опубликовано Petrov
адресацию регистров в мануале почитайте. Например, %IW0.0, %QW0.
Например: Я объявляю переменные VAR AO_000 AT %IW256:INT; AO_001 AT %IW257:INT; AO_002 AT %IW258:INT; AO_003 AT %IW259:INT; anaout AT %QW0:INT; aptr:POINTER TO INT; aptr_:POINTER TO INT; END_VAR
И пишу программу
aptr:=ADR(anaout); aptr_:=ADR(AO_000); FOR i:=0 TO 3 BY 1DO aptr^:=aptr_^; aptr:=aptr+2; aptr_:=aptr_+2; END_FOR Естественно, эта программа ничего полезного не делает кроме перекладывания переменных (в отличие от реальной). Компилятор говорит, что переменные AO_001 по AO_003 не используются и не обновляет %QW1... %QW3. То есть на выход ничего не попадает, хотя в отладчике цикл нормально проходится...
IW0 - адрес первого регистра модулей ввода.
IW256 это модбас чтоль?
и от стальной его груди отскакивают стрелы.
Да, modbus.
а зачем вам модбас, если планируете использовать CoDeSys OPC?
Объявите входы
DI_000 AT %IW0.0:INT;
DI_001 AT %IW0.1:INT;
...
выходы:
AO_000 AT %QW0:INT;
AO_001 AT %QW1:INT;
DO_000 AT %QW2.0:INT;
DO_001 AT %QW2.1:INT;
Это будет прямой доступ к модулям ввода-вывода через переменные.
На них можетет поинтеров навешать.
То что надо забрать в ОРС объявляете просто переменную внутреннюю где-нибудь в глобалах или где-угодно.
и от стальной его груди отскакивают стрелы.
Ой, перепутал.
BOOL, BOOL, BOOL.
и от стальной его груди отскакивают стрелы.
CoDeSys OPC работает не через модбас, а через свой протокол, свои порты, так что и модбас вапще можно отключить.
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме