Просмотр полной версии : Чтение регистров панелью СП310 с ПЛК 110-60
AntonTrade
20.11.2017, 20:33
Добрый день!
Проект: Панель СП30 Р, ПЛК 110-60. Соединение через Ethernet, панель Master.
Вопрос в следующем: (просто нет реального ПЛК и панели поэтому не получится проверить самому)
Конфигурация в ПЛК: Word %QW8.1.0
Можно ли из панели обратится к данному адресу функцией 0x01 для чтения 1 бита.
И я правильно понимаю, что для чтения 0 бита из 3 слова запрос с панели будет следующим 0x48?
А для 10 регистра 0 бит это 0x160.
Спасибо.
Евгений Кислов
20.11.2017, 20:38
Добрый вечер.
Можно ли из панели обратится к данному адресу функцией 0x01 для чтения 1 бита.
Да, можно.
И я правильно понимаю, что для чтения 0 бита из 3 слова запрос с панели будет следующим 0x48?
А для 10 регистра 0 бит это 0x160.
Спасибо.
Да, все верно.
AntonTrade
27.11.2017, 15:35
Два элемента подряд 8 bits - в итоге сформируются в один регистр с битами 0..15 или это будет 2 регистра с битами 0..8?
Спасибо.
Евгений Кислов
27.11.2017, 15:39
Два элемента подряд 8 bits - в итоге сформируются в один регистр с битами 0..15 или это будет 2 регистра с битами 0..8?
Спасибо.
Два 8 bits - это один регистр с битами 0..15. Лучше всегда добавляйте элементы 8 bits сразу по два.
AntonTrade
27.11.2017, 17:01
Добрый день!
Использую след. адресацию:
В глобал переменных создаю структуру из Битов VAR_N1 AT %QW8.61.0: T_IM; (где T_IM набор битов 10 штук).
TYPE T_IM :
STRUCT
MODE:BOOL; (* 0 bit *)
AUTO_ON:BOOL; (* 1 bit *)
AUTO_OFF:BOOL; (* 2 bit *)
MAN_ON:BOOL; (* 3 bit *)
MAN_OFF:BOOL; (* 4 bit *)
MAN_RES:BOOL; (* 5 bit *)
В конфигурации создаю WORD у которого адрес QW8.61.0.
При взведении битов по адресу QW8.61.0 почему взводятся биты дальше (дальше такие же структуры). Попробовал отвязать данные адреса от структур проверить может быть программа взводит. Оказалось нет, пустые регистры (не привязанные) все также взводятся QW8.61.0.
И второе, как я описал выше Структура состоит из нескольких битов: при взведении нескольких Слово ( QW8.61.0) всегда показывает 1 если два бита то 257.
Евгений Кислов
27.11.2017, 19:37
Тип BOOL в CDS занимает 8 бит (и это упомянуто в документации). Когда вы просто объявляете переменную такого типа и используете ее в программе - вы этого не замечаете (и это нормально).
А вот когда вы объявляете структуру из bool и начинаете размещать ее по прямым адресам памяти - это проявляется.
Лучше объявите в конфигурации переменную типа WORD и в программе собирайте ее через битовую маску:
wVar.0:=MODE;
wVar.1:=AUTO_ON;
и т.д.
AntonTrade
28.11.2017, 06:32
Спасибо за оперативные ответы.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot