1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Unity Pro (Control Expert), Quantum, Premium, M340, M580, Hybrid DCS, Process Expert, Zelio, Twido, M17*, M2**, SCADAPACK, SoMachine, MachineExpert, ZelioSoft, TwidoSoft, TwidoSuite, TelePace

Модератор: Специалисты SE

Ответить

Автор темы
MorglenRazor
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 03 дек 2021, 11:42
Имя: Руслан
Страна: Россия
город/регион: Бугульма

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение MorglenRazor »

Приветствую, форумчане, являюсь начинающим программистом ЛК на языке ST, возник вопрос. В данный момент программирую Schnaider TM241CE40R в среде SoMachine V4.3, панель будет Weintek. Вопрос следующий, как я понял определенного регистра для типа Float нет ,есть только %MW-word и %MD-dword. Тогда как с панели нужно будет передавать тип Float? если я не могу указать регистр с типом Float. Просто указать на адрес Word-MW и выделить ему 2 места, а в панели поставить 32-бит и тип Float?) Заранее спасибо. И извиняюсь если такая тема уже была)
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17553
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 818 раз
Поблагодарили: 1647 раз

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение Jackson »

Цветами ТАК не надо развлекаться. Всё и так понятно.
По вопросам работы Форума можно обратиться по этим контактам.

se_sib
освоился
освоился
Сообщения: 279
Зарегистрирован: 14 дек 2015, 12:15
Имя: Евгений
Страна: Россия
город/регион: Краснодар
Благодарил (а): 5 раз
Поблагодарили: 73 раза

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение se_sib »

В 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 переменных. Тогда переменные можно привязывать из списка в режиме онлайн, но должен быть подключен к ПК ПЛК и загружен в него проект.

Автор темы
MorglenRazor
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 03 дек 2021, 11:42
Имя: Руслан
Страна: Россия
город/регион: Бугульма

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение MorglenRazor »

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 переменных. Тогда переменные можно привязывать из списка в режиме онлайн, но должен быть подключен к ПК ПЛК и загружен в него проект.
Спасибо за ответ, немного узнал нового, не знал про пересечение адресов). Про протокол Codesys посмотрю. Тогда попробую описать подробнее что я хочу узнать. На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float, в Mistsubishi с этим заморочек не было, просто прописывал адрес Dxxx и в нем могло хранить и Word и Dword и float. Тут же я не могу понять. Просто в данный момент нет еще котроллера и панели, есть только задание). Если Поле ввода установить тип Real и указать адрес типа MD туду будет записано число с Float или он его отрежет в программе?)

Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение Sergy6661 »

MorglenRazor писал(а): 03 дек 2021, 15:07 На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float
Зачем по модбасу гонять Realы? Да еще при этом работая на ST?
На панели можно задать формат ввода числа с точкой и читать-писать целочисленное, а в ПЛК преобразовывать INT_TO_REal(Var*x) или наоборот.
Так и порядка больше и производительность обмена выше и вопросов по выравниванию меньше.

Автор темы
MorglenRazor
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 03 дек 2021, 11:42
Имя: Руслан
Страна: Россия
город/регион: Бугульма

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение MorglenRazor »

Sergy6661 писал(а): 06 дек 2021, 08:20
MorglenRazor писал(а): 03 дек 2021, 15:07 На панель Weintek можно сделать поле ввода - через него надо передать значение в виде Float
Зачем по модбасу гонять Realы? Да еще при этом работая на ST?
На панели можно задать формат ввода числа с точкой и читать-писать целочисленное, а в ПЛК преобразовывать INT_TO_REal(Var*x) или наоборот.
Так и порядка больше и производительность обмена выше и вопросов по выравниванию меньше.
Ответ на первый вопрос - не опытен я в этом деле еще - если объясните проблему "гоняния" реаловских значений через modbus буду благодарен)
Ответ на второй вопрос - ситуация такая что обычный программист работает на контроллерах(
В общем ответ понял - надо будет попробовать, Спасибо за ответы)

aleksru78
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 02 дек 2021, 11:48
Имя: Александр

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение aleksru78 »

Sergy6661 писал(а): 06 дек 2021, 08:20 Зачем по модбасу гонять Realы? Да еще при этом работая на ST?
А чем с точки зрения MB отличается 32 бита REAL от 32 бит, к примеру DINT, они тяжелее и их гонять сложнее или как?

Sergy6661
read only
read only
Сообщения: 577
Зарегистрирован: 19 фев 2019, 22:38
Имя: Сергей
Страна: Россия
город/регион: Краснодар
Благодарил (а): 17 раз
Поблагодарили: 77 раз

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение Sergy6661 »

aleksru78 писал(а): 06 дек 2021, 15:59
Sergy6661 писал(а): 06 дек 2021, 08:20 Зачем по модбасу гонять Realы? Да еще при этом работая на ST?
А чем с точки зрения MB отличается 32 бита REAL от 32 бит, к примеру DINT, они тяжелее и их гонять сложнее или как?
С точки зрения коммуникационной части ничем не отличаются, только зачем DINT 32 бит, если в 95% случаев достаточно 16 бит INT.
С информационной точки зрения- когда Коран писали (Модбас придумали) противопехотных мин не было (числа с плавающей точкой в устройствах ПЛК не применяли (почти), т.к не надо было) и начиналось с регистров 16 бит, соответственно байты- слова переставлять не требуется.
Для того, чтобы передать значение температуры 20,5 достаточно INT16 бит.

aleksru78
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 02 дек 2021, 11:48
Имя: Александр

Нужна помощь со Schnaider M241 и Панель weintek - Адресация для типа Float

Сообщение aleksru78 »

Sergy6661 писал(а): 07 дек 2021, 08:17 Для того, чтобы передать значение температуры 20,5 достаточно INT16 бит.
С этим полностью согласен, где есть возможность - приводить к минимальной разрядности
Ответить

Вернуться в «ПЛК»