- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Модератор: Специалисты SE
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 03 дек 2021, 11:42
- Имя: Руслан
- Страна: Россия
- город/регион: Бугульма
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Приветствую, форумчане, являюсь начинающим программистом ЛК на языке ST, возник вопрос. В данный момент программирую Schnaider TM241CE40R в среде SoMachine V4.3, панель будет Weintek. Вопрос следующий, как я понял определенного регистра для типа Float нет ,есть только %MW-word и %MD-dword. Тогда как с панели нужно будет передавать тип Float? если я не могу указать регистр с типом Float. Просто указать на адрес Word-MW и выделить ему 2 места, а в панели поставить 32-бит и тип Float?) Заранее спасибо. И извиняюсь если такая тема уже была)
-
- администратор
- Сообщения: 17553
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 818 раз
- Поблагодарили: 1647 раз
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Цветами ТАК не надо развлекаться. Всё и так понятно.
По вопросам работы Форума можно обратиться по этим контактам.
-
- освоился
- Сообщения: 279
- Зарегистрирован: 14 дек 2015, 12:15
- Имя: Евгений
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 5 раз
- Поблагодарили: 73 раза
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
В SoMachine:
rVar1 AT %MD10 : REAL; (регистр 20,21)
rVar2 AT %MD11 : REAL; (регистр 22,23)
rVar3 AT %MD12 : REAL; (регистр 24,24)
Посмотрите в встроенной справке SoMachine раздел AT объявлений и не забывайте про пересечение адресов %MD10 это %MW20, %MW21
Как в Easy Builder адресация не помню, давно уже не пользовался + ещё может порядок слов в двойном слове наоборот. Например для родных панелей Harmony в Vijeo Designer надо переворачивать порядок слов. А в каком-то ПО даже надо было пазл складывать из 4 байт))
P.S. На сколько помню Weintek поддерживает протокол Codesys(он же SoMachine), если использовать его то дело решится просто импортом переменных из файла XML который генерирует SoMachine или вариант выбора из списка в режиме онлайн.
Так же можете использовать протокол OPC UA, если для обмена с панелью укладываетесь до 1000 переменных. Тогда переменные можно привязывать из списка в режиме онлайн, но должен быть подключен к ПК ПЛК и загружен в него проект.
rVar1 AT %MD10 : REAL; (регистр 20,21)
rVar2 AT %MD11 : REAL; (регистр 22,23)
rVar3 AT %MD12 : REAL; (регистр 24,24)
Посмотрите в встроенной справке SoMachine раздел AT объявлений и не забывайте про пересечение адресов %MD10 это %MW20, %MW21
Как в Easy Builder адресация не помню, давно уже не пользовался + ещё может порядок слов в двойном слове наоборот. Например для родных панелей Harmony в Vijeo Designer надо переворачивать порядок слов. А в каком-то ПО даже надо было пазл складывать из 4 байт))
P.S. На сколько помню Weintek поддерживает протокол Codesys(он же SoMachine), если использовать его то дело решится просто импортом переменных из файла XML который генерирует SoMachine или вариант выбора из списка в режиме онлайн.
Так же можете использовать протокол OPC UA, если для обмена с панелью укладываетесь до 1000 переменных. Тогда переменные можно привязывать из списка в режиме онлайн, но должен быть подключен к ПК ПЛК и загружен в него проект.
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 03 дек 2021, 11:42
- Имя: Руслан
- Страна: Россия
- город/регион: Бугульма
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Спасибо за ответ, немного узнал нового, не знал про пересечение адресов). Про протокол Codesys посмотрю. Тогда попробую описать подробнее что я хочу узнать. На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float, в Mistsubishi с этим заморочек не было, просто прописывал адрес Dxxx и в нем могло хранить и Word и Dword и float. Тут же я не могу понять. Просто в данный момент нет еще котроллера и панели, есть только задание). Если Поле ввода установить тип Real и указать адрес типа MD туду будет записано число с Float или он его отрежет в программе?)se_sib писал(а): ↑03 дек 2021, 14:29 В SoMachine:
rVar1 AT %MD10 : REAL; (регистр 20,21)
rVar2 AT %MD11 : REAL; (регистр 22,23)
rVar3 AT %MD12 : REAL; (регистр 24,24)
Посмотрите в встроенной справке SoMachine раздел AT объявлений и не забывайте про пересечение адресов %MD10 это %MW20, %MW21
Как в Easy Builder адресация не помню, давно уже не пользовался + ещё может порядок слов в двойном слове наоборот. Например для родных панелей Harmony в Vijeo Designer надо переворачивать порядок слов. А в каком-то ПО даже надо было пазл складывать из 4 байт))
P.S. На сколько помню Weintek поддерживает протокол Codesys(он же SoMachine), если использовать его то дело решится просто импортом переменных из файла XML который генерирует SoMachine или вариант выбора из списка в режиме онлайн.
Так же можете использовать протокол OPC UA, если для обмена с панелью укладываетесь до 1000 переменных. Тогда переменные можно привязывать из списка в режиме онлайн, но должен быть подключен к ПК ПЛК и загружен в него проект.
-
- read only
- Сообщения: 577
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 17 раз
- Поблагодарили: 77 раз
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Зачем по модбасу гонять Realы? Да еще при этом работая на ST?MorglenRazor писал(а): ↑03 дек 2021, 15:07 На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float
На панели можно задать формат ввода числа с точкой и читать-писать целочисленное, а в ПЛК преобразовывать INT_TO_REal(Var*x) или наоборот.
Так и порядка больше и производительность обмена выше и вопросов по выравниванию меньше.
-
- здесь недавно
- Сообщения: 4
- Зарегистрирован: 03 дек 2021, 11:42
- Имя: Руслан
- Страна: Россия
- город/регион: Бугульма
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
Ответ на первый вопрос - не опытен я в этом деле еще - если объясните проблему "гоняния" реаловских значений через modbus буду благодарен)Sergy6661 писал(а): ↑06 дек 2021, 08:20Зачем по модбасу гонять Realы? Да еще при этом работая на ST?MorglenRazor писал(а): ↑03 дек 2021, 15:07 На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float
На панели можно задать формат ввода числа с точкой и читать-писать целочисленное, а в ПЛК преобразовывать INT_TO_REal(Var*x) или наоборот.
Так и порядка больше и производительность обмена выше и вопросов по выравниванию меньше.
Ответ на второй вопрос - ситуация такая что обычный программист работает на контроллерах(
В общем ответ понял - надо будет попробовать, Спасибо за ответы)
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 02 дек 2021, 11:48
- Имя: Александр
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
А чем с точки зрения MB отличается 32 бита REAL от 32 бит, к примеру DINT, они тяжелее и их гонять сложнее или как?
-
- read only
- Сообщения: 577
- Зарегистрирован: 19 фев 2019, 22:38
- Имя: Сергей
- Страна: Россия
- город/регион: Краснодар
- Благодарил (а): 17 раз
- Поблагодарили: 77 раз
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
С точки зрения коммуникационной части ничем не отличаются, только зачем DINT 32 бит, если в 95% случаев достаточно 16 бит INT.
С информационной точки зрения- когда Коран писали (Модбас придумали) противопехотных мин не было (числа с плавающей точкой в устройствах ПЛК не применяли (почти), т.к не надо было) и начиналось с регистров 16 бит, соответственно байты- слова переставлять не требуется.
Для того, чтобы передать значение температуры 20,5 достаточно INT16 бит.
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 02 дек 2021, 11:48
- Имя: Александр
Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float
С этим полностью согласен, где есть возможность - приводить к минимальной разрядности