This is topic Обмен по протоколу Siemens S7 in forum TRACE MODE 7 бесплатная базовая версия / TRACE MODE 7 free basic version at Форум TRACE MODE: техническая поддержка.
Добрый день. Изучаю работу нового драйвера. Не могу разобраться какой адрес[91] в области S7AreaDB я должен указать, что бы прочитать переменную в DB 20.0 типа int?
Структура DB: 0.0 bool 0.1 bool 0.2 bool 20.0 int 40.0 int 60.0 int
Posted by Nico (Участник № / Member № 5342) on :
- задается номер DB области в 308 - номер переменной в 91, на 1 может отличаться
Posted by nav1978 (Участник № / Member № 7223) on :
Добрый день Nico! Подскажите пожалуйста (- номер переменной в 91, на 1 может отличаться) - это адрес смещается? Пытаюсь с S7-1200го вытащить на Трейс 7 real значение(аналог температуры-int при этом в адресе 8 -13тыщ с копейками) а с БД адрес 46 вместо пересчитанного значения 23градуса выдаёт 16648.
Posted by Nico (Участник № / Member № 5342) on :
так задайте еще несколько источников с адресами больше/меньше на 1
Posted by nav1978 (Участник № / Member № 7223) on :
Добрый день. Взял на всякий случай другую базу(датчик температуры). Фокус не удался: -DB 20 адрес 8 - Input(int) значение при 22.43 градусах-12305 -DB 20 адрес 46 - Output(real) --------------------------16818 -DB 20 адрес 45 - Output(real) --------------------------65 -DB 20 адрес 47 - Output(real) --------------------------45629
Posted by Nico (Участник № / Member № 5342) on :
.20.0 int - тип данных целое из 1сообщения ..для чтение целочисленных данных используется канал TM типа дискрет ... канал должен соответствовать типу данных в области контроллера
Posted by Starinsky Oleg (Участник № / Member № 9514) on :
Добрый день , подскажите пожалуйста где можно почитать подробнее как работать с данным драйвером, а то не совсем понял как получить доступ к области меркерной памяти или области входов, выходов? Что означают области S7AreaDB, S7AreaPE, S7AreaPA, S7AreaMR, S7AreaСТ, S7AreaТМ?
Posted by Nico (Участник № / Member № 5342) on :
- последние 2 буквы мнемоника областей памяти контроллера
Posted by User_eda_1 (Участник № / Member № 9219) on :
Здравствуйте. За основу взял проект из примера 'Подключаем ПЛК SIEMENS LOGO к SCADA TRACE MODE 7 по S7'. Получилось подключиться к контроллеру. Дискретные входные и выходные сигналы CPU считываются, остальные данные которые прописаны а ТМ6 считываются правдо со смещением, но главное считывается. Пытаюсь разобраться с структурой/методикой прописки каналов в среде разработки. Тестируем бесплатную версию среды разработки. Имеется массив переменные в первой базе данных типа Uint (адрес 298). Задача считывать первые 4 переменных (начинаются по адресу 298,300,302,304) https://disk.yandex.ru/i/qPIcweARzycJNg По шагам сделал следующее: 1. В 'Источниках->Протоколы Net/RS->uS7LOGO' создал точку ввода 'VisualStatus_Uint_1_0'. ПОДСКАЖИТЕ какой тип канала выбирать. https://disk.yandex.ru/i/ptv09EKqdkCxJA 2. В 'Система->RTM_0->Канал_6' привязал 'VisualStatus_Uint_1_0'. https://disk.yandex.ru/i/oB-RJ7L767Sd9A 3. В 'Система->RTM_0->ЧМИ->Экран' создал в 'Аргументов' 'Scr_DB1_VisualStatus_Uint_1_0' https://disk.yandex.ru/i/EfG5qYIgm2PtLA 4. На экране в привязал к окну вывода точку ввода https://disk.yandex.ru/i/EdMywWtuTf776g 5. Произвел 'Сохранить для МРВ', все скопмилтровалось без ошибок https://disk.yandex.ru/i/MNFw-qnEEqfaXw 6. Нажал 'Запустил профайлер', затем 'Запуск/Останов' но в переменной 0. https://disk.yandex.ru/i/MV5W7vCiD2tM8Q 7. На всякий случай в переменные рядом занес значения отличные от 0, но к сожалению в ТМ 0 https://disk.yandex.ru/i/6sSNBSwVCIMYhg Подскажите что я делаю не правильно. Ссылка на сам проект https://disk.yandex.ru/d/hghJ5WZDW_oo4g Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
Здравствуйте!
Вы пишите, что используете пример для ТМ7. В ТМ6 все работает (со смещением). В ТМ6 нет отдельного протокола опроса Siemens, опрос был либо по OPC, либо по ModBus. Я правильно понимаю, что Вы работаете параллельно с двумя проектами?
Если да, то в проекте ТМ6 указанные переменные считываются?
[ 17.05.2024, 10:04: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by nav1978 (Участник № / Member № 7223) on :
День добрый! Есть SIMATIC S7-1200 где real значения сидят в MD (создать DB не возможно), каким образом можно считать в ТМ7?
Posted by User_eda_1 (Участник № / Member № 9219) on :
Работаю с ТМ7. Спасибо, получилось считать данные корректно с этих переменным. Надо было корректно прописать привязку: 1. В 'Источниках->Протоколы Net/RS->uS7LOGO' в прототип канала выбрать CHGR. 2. В 'Система->RTM_0->ЧМИ->Экран' прописать привязку к аргументам https://disk.yandex.ru/i/zrx2lwL-QYDTkQ Буду дальше копать
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: День добрый! Есть SIMATIC S7-1200 где real значения сидят в MD (создать DB не возможно), каким образом можно считать в ТМ7?
Здравствуйте! Если нет возможности данные передать в область DB, то можно использовать OPC или ModBus.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by User_eda_1: Работаю с ТМ7. Спасибо, получилось считать данные корректно с этих переменным. Надо было корректно прописать привязку: ... Буду дальше копать
Хорошо.
Posted by nav1978 (Участник № / Member № 7223) on :
quote:Отправитель / Originally posted by Nico: - задается номер DB области в 308 - номер переменной в 91
Добрый день! Как добавить источник с S7-1200 если адрес в DB с точкой(0.1, 2.1)? ТМ7 не даёт номер переменной в 91 вносить точку.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: Добрый день! Как добавить источник с S7-1200 если адрес в DB с точкой(0.1, 2.1)? ТМ7 не даёт номер переменной в 91 вносить точку.
[ 13.06.2024, 12:16: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]
Posted by nav1978 (Участник № / Member № 7223) on :
quote:Отправитель / Originally posted by АдАстра. Техподдержка:
quote:Отправитель / Originally posted by nav1978: Добрый день! Как добавить источник с S7-1200 если адрес в DB с точкой(0.1, 2.1)? ТМ7 не даёт номер переменной в 91 вносить точку.
Для int всё понятно, а вот для bool адресация идёт в DB 2.0, 2.1, 2.2, а в 91 не возможно поставить точку. если по адресу 2.0 я просто ставлю 2, то всё считывается.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: Для int всё понятно, а вот для bool адресация идёт в DB 2.0, 2.1, 2.2, а в 91 не возможно поставить точку. если по адресу 2.0 я просто ставлю 2, то всё считывается.
"Всё" - имеется ввиду все биты int'а или только один бит?
Posted by nav1978 (Участник № / Member № 7223) on :
quote:Отправитель / Originally posted by АдАстра. Техподдержка:
quote:Отправитель / Originally posted by nav1978: Для int всё понятно, а вот для bool адресация идёт в DB 2.0, 2.1, 2.2, а в 91 не возможно поставить точку. если по адресу 2.0 я просто ставлю 2, то всё считывается.
"Всё" - имеется ввиду все биты int'а или только один бит?
С int работает нормально т.к. адресация идёт без точек(20.0 записываем 20) и всё работает, bool адресация 2.2 и не понятно как справится без точки 2(.)2
Posted by nav1978 (Участник № / Member № 7223) on :
Считываю атрибут 4 FA
Posted by nav1978 (Участник № / Member № 7223) on :
Еще вопросик, можно ли с Сименса считать на прямую с адреса %Q ?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: С int работает нормально т.к. адресация идёт без точек(20.0 записываем 20) и всё работает, bool адресация 2.2 и не понятно как справится без точки 2(.)2
Вы пишите, что при адресе 2.0 (для bool) считывается "всё". Это "всё" - значение одного бита или 8?
На примере адреса 2.2, Вы пробовали атрибуту 308 задать 2 (перед точкой), а атрибуту 91 задать 2 (после точки)?
Posted by nav1978 (Участник № / Member № 7223) on :
quote:Отправитель / Originally posted by АдАстра. Техподдержка:
quote:Отправитель / Originally posted by nav1978: С int работает нормально т.к. адресация идёт без точек(20.0 записываем 20) и всё работает, bool адресация 2.2 и не понятно как справится без точки 2(.)2
Вы пишите, что при адресе 2.0 (для bool) считывается "всё". Это "всё" - значение одного бита или 8?
На примере адреса 2.2, Вы пробовали атрибуту 308 задать 2 (перед точкой), а атрибуту 91 задать 2 (после точки)?
Одного бита. В 308 у меня адрес DB.
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: Еще вопросик, можно ли с Сименса считать на прямую с адреса %Q ?
Уточните, что это за адрес? Какая область?
Posted by АдАстра. Техподдержка (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by nav1978: С int работает нормально т.к. адресация идёт без точек(20.0 записываем 20) и всё работает, bool адресация 2.2 и не понятно как справится без точки 2(.)2
Судя по документации, адрес типа Х.У означает Х номер байта, а У - номер бита в Х байте.
Задавайте адресацию как для инта (т.е 2 до точки) и из discrete-канала используйте 2-ой (после точки) бит.
[ 17.06.2024, 13:19: Сообщение отредактировал / Message edited by АдАстра. Техподдержка ]