Но теперь нужно привязать gate1.state, gate2.state к адресу внутренней памяти. Как это сделать?
привязка ведь осуществляется при объявлении:
test_param AT %MD0 : REAL;
как быть в моем случае?
К адресу можно привязать только всю структуру целиком, например:
gate1 AT %MB0: Tgate;
Что, в общем, вполне логично.
Инженер-системотехник
+7 (916) 477 3925
спасибо
а если некоторые поля структуры привязываются на физические входы или выходы, как быть в этом случае?
Никак. Так просто не бывает.
Поля структуры расположены в памяти по соседним адресам. Нельзя одно поле разместить в одном месте, а другое в другом.
Инженер-системотехник
+7 (916) 477 3925
Более сложные способы организации памяти, в том числе и прямая адресация может быть реализована в функциональном блоке. (аналог класса)
спасибо, буду думать
Первоначально опубликовано amandra
а если некоторые поля структуры привязываются на физические входы или выходы, как быть в этом случае?
Как правило (не считая очень простейших систем) программа не работает напрямую с входами/выходами. Сперва идет блок чтения всех без разбора входов в буфер, потом обработка, и в конце - запись всех (без разбора) выходных данных из выходного буфера на сами выхода. В такой классической схеме вопросов с "привязкой" нет
С уважением, SAN
я решил сделать так...
экземплер структуру привяжу к адресу памяти (эту переменную нужно тянуть по modbus дальше), а в поля этой переменной в отдельном модуле буду перезаписывать физические входы и выходы.
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме