Цитата Сообщение от kir2 Посмотреть сообщение
Petera, спасибо за оперативный ответ.
С символьной переменной я связался по причине определения str1 в конфигураторе
Вложение 30532
которая в результате читалась в ПЛК как str1='', т.е. пустой строкой.
Сегодня же попробую изменить чтение регистров предложенным Вами способом.
Не понял только один момент - почему Вы ограничиваете в указанном примере чтение-запись
в одном канале (переменной) 16-ю регистрами (amount byte=32), ведь максимальное значение
равно 249 байтам и указав (amount byte=40) можно обойтись одним каналом.

И ещё один момент - функция "копировать регистр" из битового PSB в слово PSW
Захват-2.jpg
работает при офлайн эмуляции при PSB кратном 8 (как справедливо Вами указано в одном из
Ваших сообщений), а на СП300 приведенная на изображении функция читает значения из
начального адреса, кратного 16 (PSB288) в PSW296.0.???
Ограничения в 16 регистров нет, это значение у меня только для примера. Кроме того в следующем посте http://www.owen.ru/forum/showthread....l=1#post176633 более подробный ответ, почему в моем примере в группе по 16 регистров.
Однако в реальности 249 байт не получается, для String есть "магическая" цифра 80 (перманентное число байт в модуле String), по этому если модулей String будет больше одного, то можно использовать только 80 байт или 40 регистров, объяснения здесь http://www.owen.ru/forum/showthread....l=1#post177886

По поводу "копировать регистр" из битового PSB в слово PSW.
Не совсем понял Ваш вопрос.
Могу сказать только, что начальный адрес PSB должен быть ОБЯЗАТЕЛЬНО кратным 16. Это будет работать и в эмуляторе и в панели.
Если PSB выбирать кратном 8, то такой вариант правильно работает ТОЛЬКО в эмуляторе. Для реальной панели этот вариант не проходит.