- Обязательно представиться на русском языке кириллицей (заполнить поле «Имя»).
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему — вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома — бан без предупреждения.
- Рекламу и частные объявления «куплю/продам/есть халтура» мы не размещаем ни на каких условиях.
- Перед тем как что-то написать — читать здесь и здесь.
-
RoninX
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 08 авг 2018, 21:27
- Имя: Павел
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 3 раза
Склеить два Word и получить Real
Сообщение
RoninX » 08 авг 2018, 21:46
Здравствуйте!
Измеритель выдает значение влажности в формате Real IEEE754 двумя Word. Связь с измерителем по интерфейсу RS485 Modbus RTU. Контроллер S7-1200. Как в TIA portal преобразовать эти два регистра WORD в REAL? (CD AB). На контроллерах Овен задача решается путем создания типа FLoat в списке регистров Модбас и контроллер сам преобразовывает два регистра в Реал. Как данная задача решается в tia portal v4.2?
-
pkl58
- не первый раз у нас
- Сообщения: 347
- Зарегистрирован: 19 мар 2012, 20:04
- Имя: Павел
- Страна: Россия
- Благодарил (а): 5 раз
- Поблагодарили: 43 раза
Склеить два Word и получить Real
Сообщение
pkl58 » 09 авг 2018, 12:41
Как у Сименса не знаю. Но в общем случае есть команды преобразования целых чисел в вещественные. Возможно потребуется поменять местами исходные WORD.
-
NewOrdered
- осмотрелся
- Сообщения: 153
- Зарегистрирован: 24 янв 2018, 11:18
- Имя: Антон
- Страна: Россия
- город/регион: Калининград
- Благодарил (а): 25 раз
- Поблагодарили: 25 раз
Склеить два Word и получить Real
Сообщение
NewOrdered » 09 авг 2018, 13:49
RoninX писал(а): ↑08 авг 2018, 21:46
Здравствуйте!Измеритель выдает значение влажности в формате Real IEEE754 двумя Word. Связь с измерителем по интерфейсу RS485 Modbus RTU. Контроллер S7-1200. Как в TIA portal преобразовать эти два регистра WORD в REAL? (CD AB). На контроллерах Овен задача решается путем создания типа FLoat в списке регистров Модбас и контроллер сам преобразовывает два регистра в Реал. Как данная задача решается в tia portal v4.2?
Определите область памяти длиной 4 байта как REAL. В первые два байта загрузите 1 слово, во вторые — второе слово. Далее работайте с вашим значением в формате REAL.
-
RoninX
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 08 авг 2018, 21:27
- Имя: Павел
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 3 раза
Склеить два Word и получить Real
Сообщение
RoninX » 14 авг 2018, 10:30
NewOrdered писал(а): ↑09 авг 2018, 13:49
Определите область памяти длиной 4 байта как REAL. В первые два байта загрузите 1 слово, во вторые — второе слово. Далее работайте с вашим значением в формате REAL.
Добрый день! Получилось, спасибо!
-
djonm
- новенький
- Сообщения: 1
- Зарегистрирован: 07 фев 2018, 15:04
- Имя: Евгений
- город/регион: Ростов
Склеить два Word и получить Real
Сообщение
djonm » 22 авг 2018, 13:53
RoninX писал(а): ↑14 авг 2018, 10:30
Добрый день! Получилось, спасибо!
У меня похожая задача и что то не фига не получается. По modbus читаю значение измеренного напряжения float32 (real). MB_Master читает в переменную REAL, но значение получаются совсем левые. Может надо читать Word- дами а потом переставлять биты и конвертировать в REAL?
-
petr2off
- эксперт
- Сообщения: 1356
- Зарегистрирован: 06 янв 2016, 19:45
- Имя: Петров В.Л.
- Страна: Россия
- город/регион: Красноярск
- Благодарил (а): 56 раз
- Поблагодарили: 138 раз
Склеить два Word и получить Real
Сообщение
petr2off » 22 авг 2018, 16:33
Какая разница как читать, Вы уже считали 4 байта. К этой области памяти можно обратится как 4-х байтовому полю, как к 2 16-ти битовым словам и как к 4 байтовым адресам. А еще добавляя точку можно и к битам обратится. Как вариант поменяйте слова местами. Очень часто при чтении Modbas 16 разрядные слова не в том порядке принимаются.
-
RoninX
- здесь недавно
- Сообщения: 8
- Зарегистрирован: 08 авг 2018, 21:27
- Имя: Павел
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 3 раза
Склеить два Word и получить Real
Сообщение
RoninX » 24 дек 2018, 14:44
[/quote] У меня похожая задача и что то не фига не получается. По modbus читаю значение измеренного напряжения float32 (real). MB_Master читает в переменную REAL, но значение получаются совсем левые. Может надо читать Word- дами а потом переставлять биты и конвертировать в REAL?
[/quote]
Попробуйте применить функцию SWAP
-
Serg_G
- здесь недавно
- Сообщения: 59
- Зарегистрирован: 04 авг 2018, 07:02
- Имя: Сергей
- Благодарил (а): 8 раз
- Поблагодарили: 2 раза
Склеить два Word и получить Real
Сообщение
Serg_G » 21 янв 2019, 18:45
Попробуйте так. В классике это работало. Только надо правильно выбрать байты из слова.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вернуться в «Simatic TIA Portal»
Перейти
- Работа форума
- База знаний (Knowledge Exchange)
- ↳ Eplan Electric P8
- ↳ Общий F.A.Q.
- ↳ Общие вопросы
- ↳ Новости
- ↳ Ошибки
- ↳ Проект
- ↳ Изделия
- ↳ Устройства
- ↳ Соединения
- ↳ Кабели
- ↳ Клеммы
- ↳ ПЛК
- ↳ Компоновка 2D
- ↳ Макросы
- ↳ Eplan API
- ↳ Сценарии (Только готовые решения)
- ↳ Внешняя обработка
- ↳ ProPanel
- ↳ Инструкции ProPanel (Только готовые решения)
- ↳ Прочие направления Eplan
- ↳ FieldSys (Топология)
- ↳ Preplanning
- ↳ Harness proD
- ↳ EEC One
- ↳ Advantech
- ↳ F.A.Q., Инструкции
- ↳ Allen Bradley
- ↳ Общие вопросы
- ↳ ПЛК
- ↳ Операторские панели
- ↳ B&R Automation
- ↳ F.A.Q.
- ↳ Danfoss
- ↳ DEIF A/S
- ↳ Общие вопросы
- ↳ UNI-LINE
- ↳ MULTI-LINE
- ↳ MULTI-LINE 300
- ↳ Emerson
- ↳ Общие вопросы
- ↳ КИП и регуляторы
- ↳ DeltaV
- ↳ ОВЕН
- ↳ Прософт-Системы
- ↳ Общие вопросы
- ↳ ПЛК REGUL
- ↳ Schneider Electric
- ↳ Общие вопросы
- ↳ ПЛК
- ↳ Панели оператора
- ↳ SCADA
- ↳ Электротехника
- ↳ Приводная техника
- ↳ SIEMENS
- ↳ Общие вопросы
- ↳ LOGO!
- ↳ ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
- ↳ Simatic Step7
- ↳ Simatic TIA Portal
- ↳ Simatic PCS 7
- ↳ Операторские панели
- ↳ WinCC
- ↳ Приводная техника (Sinamics, Micromaster, Masterdrive, Simoreg, Simotics)
- ↳ SmartGen
- ↳ Общие вопросы
- ↳ Промышленные (береговые) контроллеры
- ↳ Морские контроллеры и устройства
- ↳ WEINTEK (операторские панели)
- ↳ F.A.Q., Инструкции
- ↳ Архив
- ↳ Микроконтроллеры и электроника
- ↳ Arduino
- ↳ Raspberry
- ↳ Другие микроконтроллеры
- ↳ Электроника
- Общие вопросы АСУТП
- ↳ Общие вопросы
- ↳ Вопросы от студентов
- ↳ Литература
- ↳ Новости и отчётность
- ↳ Нормативы, ГОСТы, стандарты
- ↳ Информационная безопасность
- ↳ Проектирование и САПР
- ↳ Системная интеграция
- ↳ Разбор полетов
- ↳ Работа
- ↳ Заготовки для базы знаний
- ↳ Производство и технология
- ↳ MES — Системы автоматизации управления производством
- ↳ Метрология, КИП и датчики
- ↳ Исполнительные устройства, регуляторы
- ↳ Средний уровень автоматизации (управляющий)
- ↳ Алгоритмы
- ↳ Операторские панели
- ↳ Верхний уровень автоматизации (отображение)
- ↳ GE iFix
- ↳ Wonderware Intouch
- ↳ MasterScada
- ↳ SCADA+
- ↳ Альфа платформа
- ↳ Интерфейсы, протоколы, связь
- ↳ Радиосвязь
- ↳ Полезное ПО
- ↳ Электротехника, энергетика и электропривод
- ↳ Генераторы, электростанции и силовые агрегаты
- ↳ Теплотехника
- ↳ Подбор аналогов
- F.A.Q. (краткая выжимка из некоторых сообщений форума)
- ↳ Документация (вариант 1)
- ↳ Документация (вариант 2)
- ↳ Электротехника и электроэнергетика
- ↳ F.A.Q. по программируемым логическим контроллерам (PLC)
- ↳ Обсуждение F.A.Q. по PLC
- ↳ F.A.Q. по выбору PLC
- ↳ F.A.Q. по аппаратной части PLC
- ↳ F.A.Q. по языкам программирования
- ↳ F.A.Q. по структуре программ
- ↳ F.A.Q. по взаимодействию PLC с HMI
- О жизни
- ↳ Для дома, для семьи
- ↳ Комната смеха
- ↳ Электродвижение
-
Ivydy
- Дилетант
- Сообщения: 18
- Зарегистрирован: 13 фев 2018, 16:17
Перестановка местами WORD в REAL
Здравствуйте. Имею следующее. TIA Portal V15, S7-1200 с коммуникационным модулем CM1241 (MASTER).
По RS485 общаюсь с датчиком виброскорости(SLAVE). С датчика получаю ряд данных в виде массива REAL, но проблема, что видятся они в неадекватном виде. Я так понимаю, что нужно поменять местами WORD в REAL, то есть AB CD —> CD AB. Функции SWAP не подходят, они переделывают по другому. Как можно это сделать ? Заранее спасибо.
-
Михайло
- Администратор
- Сообщения: 4073
- Зарегистрирован: 19 сен 2012, 19:16
Re: Перестановка местами WORD в REAL
Сообщение
Михайло » 09 июл 2019, 20:51
Создаем функцию FC, у нее в разделе Input создаем переменную in типа Real, в разделе Output — переменную out типа Real, в разделе Temp — переменные t типа DWord, ab, cd типа Word. Пишем на языке LAD или FBD.
1. MOVE из in в t.
2. MOVE из t.w0 в ab.
3. MOVE из t.w1 в cd.
4. MOVE из ab в t.w1.
5. MOVE из cd в t.w0.
6. MOVE из t в out.
Используем функцию многократно.
|
#6 |
Lifetime Supporting Member
Join Date: Dec 2019 Location: Rochester, NY Posts: 6,510 |
@LD and @Lare have it:
I have no idea where OP is getting the data for their floating point values in [AlgInput], it is almost certainly not from the Words in [InputRegister]
There may be an issue with how the data are physically laid out in the Struct with the 22 reals. Isn’t there an «optimized» option for data blocks?
__________________ |
|
|
(S7-1500
opt:
1 byte)
S7-1200,
S7-1500
BOOL#0 or BOOL#1
BOOL#FALSE or BOOL#TRUE
WORD → 16 BOOL
BYTE → 8 BOOL
S7-1200,
S7-1500
Dec: 0..255, Hex: 00..FF
BYTE → 8 BOOL
DT → WORD/BYTE
S7-1200,
S7-1500
WORD → 16 BOOL
STRING → DB REGS
DB REGS → STRING
DT → WORD/BYTE
WORD → REAL
REAL → WORD
S7-1200,
S7-1500
S7-1500
S7-1500
S7-1200,
S7-1500
Hex: 0..7FFF
S7-1200,
S7-1500
Hex: 0..#7FFFFFFF
short integer
S7-1500
integer
S7-1500
double integer
S7-1500
Hex: 00000000..FFFFFFFF
+9223372036854775807,
Hex: 0000000000000000..
7FFFFFFFFFFFFFFF
long integer
Hex: 0000000000000000..
FFFFFFFFFFFFFFFF
S7-1200,
S7-1500
+1.175 495e-38..+3.402823e+38
REAL → WORD
S7-1500
..-2.2250738585072014e-308 and
+2.2250738585072014e-308
..+1.7976931348623158e+308
S7-1500
S5T#2H_46M_30S_0MS
S7-1200,
S7-1500
T#+24d20h31m23s647ms
16s854ms775us808ns..
LT#+106751d23h47m
16s854ms775us807ns
S7-1200,
S7-1500
S7-1500
+ 2 byte
S7-1200,
S7-1500
DB REGS → STRING
STRING → REAL/LINT
DT → STRING
+ 2 word
S7-1500
S7-1200,
S7-1500
S7-1200,
S7-1500
TOD#23:59:59.999
time_of_day
LTOD#23:59:59.999999999
S7-1500
DT#1990-01-01-0:0:0
Max.:
DT#2089-12-31-23:59:59.999
DT → STRING
date_and_time
LDT#1970-01-01-0:0:0.000000000, 16#0
Max.:
LDT#2262-04-11-23:47:16.854775807,
16#7FFF_FFFF_FFFF_FFFF
S7-1500
DTL#1970-01-01-00:00:00.0
Max.:
DTL#2554-12-31-23:59:59.999999999
S7-1500
S7-1500
S7-1500
P#M100.0 BYTE 10
P#DB1.DBX0.0 BYTE 10
0 / 0 / 0 Регистрация: 27.03.2013 Сообщений: 47 |
|
1 |
|
24.02.2019, 18:20. Показов 7704. Ответов 2
Помогите с решением вопроса по изменению данных тега с типом данных word. Требуется преобразовать теги по битово в слово. После написания программы получился результат. Но если изменить значение тега с истины на лож или на оборот значение слова не меняется. Подскажите как осуществляется хранение данных с типом данных word, и как сделать что бы данные изменялись в реальном времени. Использую зык программирование LAD
0 |
467 / 231 / 72 Регистрация: 25.05.2012 Сообщений: 1,012 Записей в блоге: 1 |
|
25.02.2019, 14:14 |
2 |
denis0387, ну так покажите, где у вас проблема, чуть больше конкретики: код или картинка
0 |
3 / 2 / 1 Регистрация: 20.11.2019 Сообщений: 4 |
|
22.11.2019, 11:24 |
3 |
Вам необходимо обращаться с абсолютной адресацией к битам слова, ссылка на оф. форум: https://support.industry.sieme… 0&lc=en-WW
0 |