HMI_панель на Андроиде
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
HMI_панель на Андроиде
Извините, я ни коим образом не хотел Вас обидеть. Знание модбаса никоим образом не относится к "программистским штучкам". Программисты как раз ничего о нём не знают (и это плохо - найти нормальную библиотеку для модбаса очень сложно, да и просто эмулятор слейва или мастера для ПК нормальный то же не очень просто - есть куча но все работают через одно место ). Протокол модбас - это чисто АСУ-шная заморочка. Ему обучают на курсах асушников. Вы как я понял - инженер разработчик АСУ (по крайней мере мне показалось что в ОЛ вы очень хорошо разбираетесь). Но Вы работаете только с Овеном. И поэтому задания своим программистам даёте в разрезе Овена. Мне по специфике своей работы (кроме основной работы я ещё и фрилансем занимаюсь разработкой систем асу и сотрудничаю с нескольким фирмами) пришлось работать с оборудованием практически всех известных производителей. И наших и отечественных. И я просто хотел Вам дать совет как сделать Вашу программу максимально универсальной. В этом у меня то же есть свой интерес. Я с удовольствием использовал бы её в своих проектах. Очень интересная связка получается при использовании Сокет-3М и Каскада. Пока к сожалению это проблемма. У меня заказчики предпочитают либо Зелио, либо S7-1200. У Зелио при запросе InputRegistrs вывалится ошибка. С S7-1200 немного другая ситуация - там профинет, но можно подцепить модуль модбаса. Я с ним пока не работал (пока профинета хватает), но с появлением каскады появились идеи.
Если вы смените функцию с 4 на 3 для ПР ничего не изменится (области то объедены, да и сейчас и работает только благодаря этому), но при этом каскада начнёт работать и с устройствами с раздразнёнными областями, но только с областью HoldingRegisters.
Конечно в идеале я могу посоветовать такую реализацию задания выбора адреса для каскады:
1.Элементы только с чтением бита (индкатора с битовым управлением, тексты...) выбор областей:
1.1 Coil - задаётся непосредственно адрес номера флага. Чтение производится функцией 1
1.2 DiscreteInput - задаётся непосредственно адрес номера флага. Чтение производится функцией 2
1.3 HoldingRegistr - задаётся адрес регистра и номер бита (как сейчас). Чтение производится функцией 3
1.4 InputRegistr - задаётся адрес регистра и номер бита. Чтение производится функцией 4.
По умолчанию устанавливается HoldingRegistr (что бы текущим пользователям было привычнее). Для устройств с объединёнными областями (и для ПР) изменение выбора не будет иметь значения, за исключением расчёта адреса. Например при запросе Coil или DiscreteInput с адресом 17 будет читаться 2 бит из ячейки память с адресом 1. То же что и задать HoldingRegistr или InputRegistr адресом 1 и номером бита 2. Но появится возможность читать необходимые данные из устройств с разделёнными областями. Это относится и к следующим типам элементов.
2. Элементы с заданием бита (кнопки, переключатели ...) выбор областей:
2.1. Coil - задаётся непосредственно адрес номера флага. Запись производится функцией 5, чтение производится функцией 1.
2.2 HoldingRegistr - задаётся адрес регистра и номер бита (как сейчас). Запись производится функцией 6, чтение производится функцией 3
3. Элементы только с чтением цифровых значений (Шкала, график ....) выбор областей:
3.1. HoldingRegistr - задаётся адрес регистра (как сейчас). Чтение производится функцией 3
3.2. InputRegistr - задаётся адрес регистра . Чтение производится функцией 4.
4.Элементы с записью цифрового значения (задатчик) Только одна область - HoldingRegistr - задаётся адрес регистра (как сейчас). Запись производится функцией 6, чтение производится функцией 3
Если удастся сделать такую реализацию, то каскада станет действительно универсальной, подходящий для ЛЮБЫХ устройств имеющих модбас. При этом для ПР ничего не изменится. Передайте пожалуйста эти выкладки своему программисту, пускай посмотрит.
P.S. И ещё раз меня извините, если я Вас обидел. Я просто хотел помочь.
Если вы смените функцию с 4 на 3 для ПР ничего не изменится (области то объедены, да и сейчас и работает только благодаря этому), но при этом каскада начнёт работать и с устройствами с раздразнёнными областями, но только с областью HoldingRegisters.
Конечно в идеале я могу посоветовать такую реализацию задания выбора адреса для каскады:
1.Элементы только с чтением бита (индкатора с битовым управлением, тексты...) выбор областей:
1.1 Coil - задаётся непосредственно адрес номера флага. Чтение производится функцией 1
1.2 DiscreteInput - задаётся непосредственно адрес номера флага. Чтение производится функцией 2
1.3 HoldingRegistr - задаётся адрес регистра и номер бита (как сейчас). Чтение производится функцией 3
1.4 InputRegistr - задаётся адрес регистра и номер бита. Чтение производится функцией 4.
По умолчанию устанавливается HoldingRegistr (что бы текущим пользователям было привычнее). Для устройств с объединёнными областями (и для ПР) изменение выбора не будет иметь значения, за исключением расчёта адреса. Например при запросе Coil или DiscreteInput с адресом 17 будет читаться 2 бит из ячейки память с адресом 1. То же что и задать HoldingRegistr или InputRegistr адресом 1 и номером бита 2. Но появится возможность читать необходимые данные из устройств с разделёнными областями. Это относится и к следующим типам элементов.
2. Элементы с заданием бита (кнопки, переключатели ...) выбор областей:
2.1. Coil - задаётся непосредственно адрес номера флага. Запись производится функцией 5, чтение производится функцией 1.
2.2 HoldingRegistr - задаётся адрес регистра и номер бита (как сейчас). Запись производится функцией 6, чтение производится функцией 3
3. Элементы только с чтением цифровых значений (Шкала, график ....) выбор областей:
3.1. HoldingRegistr - задаётся адрес регистра (как сейчас). Чтение производится функцией 3
3.2. InputRegistr - задаётся адрес регистра . Чтение производится функцией 4.
4.Элементы с записью цифрового значения (задатчик) Только одна область - HoldingRegistr - задаётся адрес регистра (как сейчас). Запись производится функцией 6, чтение производится функцией 3
Если удастся сделать такую реализацию, то каскада станет действительно универсальной, подходящий для ЛЮБЫХ устройств имеющих модбас. При этом для ПР ничего не изменится. Передайте пожалуйста эти выкладки своему программисту, пускай посмотрит.
P.S. И ещё раз меня извините, если я Вас обидел. Я просто хотел помочь.
Автор программы FLProg.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
Спасибо,Сергей за предложения ,я их передам и все что нужно сделаем ...Потому как заинтересован . 
Для меня все кто пишет код -программисты и не важно системный или прикладной
https://ru.wikipedia.org/wiki....1%D1%82

Для меня все кто пишет код -программисты и не важно системный или прикладной
https://ru.wikipedia.org/wiki....1%D1%82
Последний раз редактировалось Rovki 25 май 2016, 22:13, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
HMI_панель на Андроиде
я внимательно слежу.support писал(а):Передайте пожалуйста эти выкладки своему программисту, пускай посмотрит.
3ю функцию уже сделал, потестирую еще завтра с остальным оборудованием ОВЕН и ПЧВ innovert, но и так уверен на 99% что должно работать.
По сути я думаю всем тем компонентам, которые читают надо дать выбор функции и всё, только разделить на битовые и регистры.
Для всех кто читает БИТЫ даём выбор 1 или 2.
Для всех кто читает РЕГИСТРЫ даём выбор 4 или 3.
Запись выбирать нет смысла.
Таким образом мы покроем всё разнообразие ведь так?
Последний раз редактировалось KaScada 25 май 2016, 22:37, всего редактировалось 1 раз.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
HMI_панель на Андроиде
Тут не совсем код..... Не знаю, входит ли в Ваши обязанности настройка ОПС серверов, но по моему входит. Возмём такой пример. Надо настроить ОПС для системы. Пока у вас в системе только ПР, всё хорошо, для всех тэгов в ОПС выбираем HoldingRegisters и всё. Но вот в системе появился измерительный преобразователь (живой пример, недавно систему делал - это преобразователь, со входов читает напряжение, ток, и ещё внутри кучу расчётов делает и отдаёт всё по модбасу, кстати Российского производства). И что делать. Значения входных данных у него находятся в InputRegisters адресам 0 - 6 (три напряжения и три тока), ну а в HolldingRegistrs по адресам 0 - по моему 20 (точно не помню) находятся расчётные значения (активная мощность, реактивная мощность, cos f, частота и т.д). Обратите внимание на адреса. И как настраивать ОПС без знания разделения областей памяти? А теперь представьте что поставлена задача подключить этот преобразователь к ПР который является мастером и с помощью него прочитать например напряжение и использовать его в логике. Что Вы будете делать. Звать программиста? Он про ОЛ скорее всего ничего не знает. А Вы не знаете про области памяти. Тупик?Rovki писал(а):Для меня все кто пишет код -программисты и не важно системный или прикладной
Так что как я и говорил - это не программистские заморочки а что ни на есть самые наши - АСУ-шные
Автор программы FLProg.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
Программист АСУ ТП , прикладной программист итд итпsupport писал(а):самые наши - АСУ-шные

Я сам себе ставлю задачу ,поэтому ни кому не обязан ,уже давно ...кроме семьи .
Добавлено (25.05.2016, 22:56)
---------------------------------------------
И получим HMI MODBUS .Пользователь Каскада не должен ни о чем таком догадываться ,о функциях и прочих модбасов .Его задача пальчиком поставить компонент, назначить адреса которые в проекте (ПР,ПЛК ,Ардуино) и работать ... B)Вам программистам только дай волю ,завтра все кукарекать будутKaScada писал(а):По сути я думаю всем тем компонентам, которые читают надо дать выбор функции и всё, только разделить на битовые и регистры.Для всех кто читает БИТЫ даём выбор 1 или 2.
Для всех кто читаетРЕГИСТРЫ даём выбор 4 или 3.
Последний раз редактировалось Rovki 25 май 2016, 22:59, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
HMI_панель на Андроиде
Прежде всего не надо делать выбор функции (1, 2, 3....) - отпугнёт. Это как раз "программистские" заморочки. Асушники ничего не знают о них. Они знают области -"Входы" цифровые или аналоговые (DiscreteInput или InputRegisters), "Выходы" (Coil) и регисторы хранения (HoldingRegistrs). А на уровне драйвера уже работа программиста выбрать нужную функцию.KaScada писал(а):Для всех кто читает БИТЫ даём выбор 1 или 2.Для всех кто читает РЕГИСТРЫ даём выбор 4 или 3.
Насчет чтения и записи битов из HoldingRegistrs - я бы такую возможность оставил. Дело вот в чём. На примере контроллера Зелио (и не только него а ещё и по моему у Mitsubisi такая система) записать какое то полученное в работе контроллера битовое значение (например наличие какой ни будь аварии) можно только в бит HoldingRegistrs. Так же отправить один бит (например команду на пуск) можно то же только через бит HoldingRegistrs. А этих регистров у Зелио всего два . В область DiscreteInput у этих контроллеров заведены значение считываемые с железных входов, а железные выходы (и только они) управляются областью Coil. Так что возможность записи битов (например кнопка квитирования аварии запомненной в контроллере) в область HoldingRegistrs мне кажется необходима, как и чтение бита из этой области.
Ну а чтением и записью регистров я согласен. Только не выбор функции а выбор области. Ну и естественно для задатчиков если пишем в область HoldingRegistrs (функцией 6) то и для контроля читаем функцией 3. Если пишем в Coil (функцией 5) то и для контроля читаем функцией 1
Автор программы FLProg.
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
HMI_панель на Андроиде
Поясните плиз настройки компонента архивации, как привязаться к каналам, какой указывать начальный регистр, почему в адресе надо указывать бит регистра? Можно пример архивации 100 случайных целых чисел с записью времени появления каждого числа?
Последний раз редактировалось OlegAn1962 26 май 2016, 11:44, всего редактировалось 1 раз.
HMI_панель на Андроиде
Пример к сожалению пока не смогу сделать, hc05 мой занят пока.OlegAn1962 писал(а):Поясните плиз настройки компонента архивации, как привязаться к каналам, какой указывать начальный регистр, почему в адресе надо указывать бит регистра? Можно пример архивации 100 случайных целых чисел с записью времени появления каждого числа?
Тип данных - думаю понятно, единственное поясню, FLOAT требует 2 регистра (4 байта), int - беззнаковый, один регистр.
Кол-во - сколько необходимо записывать значений, они должны располагаться в ардуино последовательно.
Начальный регистр - с какого регистра писать.
Пример.
В ардуино есть 4 int с адресами модбас 1,2,3 и 4.
Вы хотите все 4 писать, значит кол-во ставите равное 4, тип INT, начальный ставите равный 1, тоесть с первого четыре штуки.
Запись произойдет по переднему фронту от указанного бита в адресе, тоесть вы записью можете управлять как вам удобно, случилась аварийная ситация, установили в ардуино этот бит, архив записал 1 раз указанные значения.
Если хотите непрерывно писать, то организуйте блинкер (генератор или мультивибратор) в ардуино и дёргайте бит, но тут каскада должна успевать опрашивать этот бит, а это зависит напрямую от сложности проекта и количества опрашиваемых регистров в целом на этом сетевом устройстве.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
Это управляющий бит регистра -внешнее событие для Архива ,по которому происходит запись переменных в архив .OlegAn1962 писал(а):почему в адресе надо указывать бит регистра?
Добавлено (26.05.2016, 21:47)
---------------------------------------------
Скоро обновится Каскада до версии 3.1.5 -доработан модбас .
Электронщик до мозга костей и не только
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
HMI_панель на Андроиде
Спасибо за пояснения, с Integer получилось, а с Float ничего в архив не записывает, или не отсылает.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
а какие адреса у ваших флоат переменных ?
Электронщик до мозга костей и не только
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
HMI_панель на Андроиде
2 и 3
$IMAGE1$
$IMAGE1$
Последний раз редактировалось OlegAn1962 27 май 2016, 17:10, всего редактировалось 1 раз.
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
А вы можете задать флоат константу и отправить на каскаду в архив ?для проверки ...,например 5,1
Добавлено (27.05.2016, 17:19)
---------------------------------------------
И где и как в проекте вы задаете бит управления архива ,без него записи в архив не будет
Добавлено (27.05.2016, 17:19)
---------------------------------------------
И где и как в проекте вы задаете бит управления архива ,без него записи в архив не будет
Электронщик до мозга костей и не только
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
HMI_панель на Андроиде
Этот блок каждую секунду отправляет байт 00000001 на модбас
Адрес у переменной led 1, соответственно для архива в каскаде задаю сигнал для записи 1.1
Адрес у переменной led 1, соответственно для архива в каскаде задаю сигнал для записи 1.1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось OlegAn1962 27 май 2016, 18:00, всего редактировалось 1 раз.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
В архив можно писать только одного типа данные по 4 каналам или целочисленные или вещественные ,разные нельзя ...
Электронщик до мозга костей и не только
-
- Лейтенант
- Сообщения: 361
- Зарегистрирован: 07 сен 2015, 23:53
HMI_панель на Андроиде
А, ясно, наверное из-за этого и не получилось, проверю позже, сейчас ардуины нет под рукой.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
Идет процесс отладки приема СМС новым компонентом
Добавлено (27.05.2016, 23:40)
---------------------------------------------
первое видео про управление по СМС
[video]http://www.youtube.com/watch?v=Aq28W0Gz_Ug[/video]
Добавлено (28.05.2016, 09:27)
---------------------------------------------
В HMI KaScada pro(версия с активацией) реализовано управление по СМС - как прием СМС (битовых команд и значений регистров) ,так и отправка
СМС (ранее реализован обмен по вайфай модбас ТСР). С целью повышения
надежности управления разработан макрос SMS который обеспечивает
формирование ответного СМС на принятую команду по СМС ,что очень
актуально при удаленном управлении .Предполагаемый срок публикации 1.06.2016 .
Добавлено (28.05.2016, 12:16)
---------------------------------------------
Натурные испытания

https://youtu.be/spCYXaV6mWM
[video]http://www.youtube.com/watch?v=spCYXaV6mWM[/video]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Rovki 28 май 2016, 12:17, всего редактировалось 1 раз.
Электронщик до мозга костей и не только
HMI_панель на Андроиде
только начал изучать каскаду. в версии флпрог 1,11,1 подружил без проблем а вот как это сделать в 1,11,2 не получается. непонятки с областями памяти. что это и с чем едят?
вопрос к каскаде, в индикаторах у вас есть настройка макс значения индикатора и также возможно указать значение регистра, почему бы не добавить еще настройку кол-ва разрядов и положение десят точки. может конечно этого и не нужно, я просто проводил эксперименты с темп датчиком и выводил его показания и получилось что в цифровом виде нужно одно а если на индикацию визуальную другое и в графиках тоже самое
вопрос к каскаде, в индикаторах у вас есть настройка макс значения индикатора и также возможно указать значение регистра, почему бы не добавить еще настройку кол-ва разрядов и положение десят точки. может конечно этого и не нужно, я просто проводил эксперименты с темп датчиком и выводил его показания и получилось что в цифровом виде нужно одно а если на индикацию визуальную другое и в графиках тоже самое
Последний раз редактировалось vlad 28 май 2016, 13:20, всего редактировалось 1 раз.
- Rovki
- Полковник
- Сообщения: 5746
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 69 раз
- Поблагодарили: 223 раза
- Контактная информация:
HMI_панель на Андроиде
Про флпрог не подскажу .vlad писал(а):только начал изучать каскаду
Есть два индикатора
один для количественной оценки(цифровой индикатор) ,второй для качественной(индикатор с аналоговой шкалой)
Для первого можно устанавливать кол.разрядов ,положение дес.точки ,во втором нет .
Можно сделать комбинированный индикатор -в аналоговом отключаете вывод значений ,а вместо их ставите цифровой индикатор ,с тем же адресом ,в нужное место (вверху ,внизу,,,).
Потребностей очень много ,поэтому все для всех не сделаешь .Поэтому наша концепция -дать базовый набор компонентов с помощью которого можно создать свой компонент визуализации .
Электронщик до мозга костей и не только
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя