Дак объявите для области обмена
X at %.... : array[1..10] of real;
Ругается КДС?
Вид для печати
Работает, спасибо, не знал этого:
Вложение 79451
Объявить в коде программы X at %.... : array[1..10] of real; для каждого массива?
Ну а с учетом этого можно глянуть картинку в п#14 и прочитать 1-й пост ТС
(про пост#2 я стесняюсь напоминать)
.....
тоже про пост#14 и Ваш же вопрос с каким зашли
(и опять же про пост 2)
---------------------------------
А так в КДС3 ?Цитата:
VAR CONSTANT
N1 : INT := 10;
N2 : INT := N1 * 2;
END_VAR
Ну я тупо вижу WORD и как бы не заморачиваюсь... Тем более с кодесис 2.3 и не работал много, таких тонкостей не знал. А вот такой "финт ушами" правда заинтересовал. Но вот момент, я писал на 3.6.14, потом перешел 3.5.17, с его замутой с перестановкой бит в регистре. Т.е. я не только реал использовал, и поэтому с перестановкой справился за 5 минут в прошлый раз. При такой реализации пришлось бы подумать как выкручиваться...
в программе понятно это работает, если массив например X[0..5, 0..50], а в аргументе объявлено X[0..50]. На входе просто ставишь X[0] и все, все элементы старшего 0-разряда будут переданы. А вот в конфигурации Modbus Соотнесение входов/выходов такое не проходит. И объявлять в программе нет смысла массив для области обмена. У меня на каждом слейв такой массив, я хотел наоборот объединить все области обмена в двумерный массив, в программе обрабатывать этот массив и распихивать данные по таблицам.
Понятно. Так я еще не делал, хотя где-то слышал про такое. С адресами работу я избегал всегда, предпочитал соотносить переменные. Спасибо всем, буду мозговать дальше.
Для КДС2, но пример с мастером
https://owen.ru/forum/showthread.php?t=10555&page=1104
пост#11035
И правильно. Прямые адреса - зло. Но потому что если сказать что норм, то начинают пихать сотнями и по всем закоулкам. Это как с goto