Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Общение с прибором с помощью скрипта

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    ну а техподдержка на конкретный SendAndReceiveDataByMask говорит? там же либы подключаются к MS4D и можно пользоваться всем их функционалом?

    Посмотрите тут темы по C# для MS4D были. Просто подключаете эти либы в VisualStudio и смотрите что там есть, какие методы, классы и т.д.
    Насколько понял, документации на либы нет или она в непонятно зачаточном состоянии (или что-то по запросу вам дадут).
    Тут на форуме будете ждать долго.

    table.insert это назначение элементам массива значений, если правильно понимаю.
    Последний раз редактировалось melky; 27.03.2025 в 12:06.

  2. #2
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    ну а техподдержка на конкретный SendAndReceiveDataByMask говорит? там же либы подключаются к MS4D и можно пользоваться всем их функционалом?

    Посмотрите тут темы по C# для MS4D были. Просто подключаете эти либы в VisualStudio и смотрите что там есть, какие методы, классы и т.д.
    Насколько понял, документации на либы нет или она в непонятно зачаточном состоянии (или что-то по запросу вам дадут).
    Тут на форуме будете ждать долго.

    table.insert это назначение элементам массива значений, если правильно понимаю.
    Техподдержка от Insat пока молчит. В крайнем случае придется докупить OPC сервер.

  3. #3

    По умолчанию

    Мне не было нужды, но если бы стояла подобная задача, то использовал:
    "Универсальный протокол COM порта - служит для получения данных через COM-порт устройства, на котором установлена среда исполнения. Используется для работы с ФБ COMPort, COMPortSync, COMPortByte, COMPortByteSync. ФБ COMPortSync и COMPortByteSync используются только в программах данного протокола. COMPort и COMBytePort можно использовать в программах объектов..."

  4. #4
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от Роман Ж Посмотреть сообщение
    Мне не было нужды, но если бы стояла подобная задача, то использовал:
    "Универсальный протокол COM порта - служит для получения данных через COM-порт устройства, на котором установлена среда исполнения. Используется для работы с ФБ COMPort, COMPortSync, COMPortByte, COMPortByteSync. ФБ COMPortSync и COMPortByteSync используются только в программах данного протокола. COMPort и COMBytePort можно использовать в программах объектов..."
    Как раз пробуем разобраться с данными ФБ

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    по поводу данных FB вроде тоже тема была недавно...

    https://owen.ru/forum/showthread.php?t=37147 - документацию хотя бы сжатую можно запросить.
    Еще вариант, загрузить в VS нужные библиотеки и написать небольшой код, который вам вывалит все доступные методы, думаю как либы в объект запихнуть найдете. Тут и свойства посмотреть можно и поля. Плюс то, что получите от Инсат.

    Код:
            #region TraceObject
            void TraceObjectFields(object obj) // выводит список полей, их имена и значения:
            {
                foreach (FieldInfo mi in obj.GetType().GetFields())
                    // Вывод в лог_WriteLine(mi.FieldType.Name + " " + mi.Name + " = " + mi.GetValue(obj) + mi.FieldType.ToString());
            }
            void TraceObjectProperties(object obj) // выводит список свойств объекта:
            {
                foreach (PropertyInfo pi in obj.GetType().GetProperties())
                    // Вывод в лог_WriteLine(pi.PropertyType.Name + " " + pi.Name + " = " + pi.GetValue(obj, null));
            }
            void TraceObjectMethods(object obj)
            {
                foreach (MethodInfo mi in obj.GetType().GetMethods())
                     // Вывод в лог_WriteLine(mi.Name + " " + mi.IsPublic);
    
            }
            #endregion TraceObject
    Последний раз редактировалось melky; 28.03.2025 в 10:53.

  6. #6
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    по поводу данных FB вроде тоже тема была недавно...

    https://owen.ru/forum/showthread.php?t=37147 - документацию хотя бы сжатую можно запросить.
    Еще вариант, загрузить в VS нужные библиотеки и написать небольшой код, который вам вывалит все доступные методы, думаю как либы в объект запихнуть найдете. Тут и свойства посмотреть можно и поля. Плюс то, что получите от Инсат.

    Код:
            #region TraceObject
            void TraceObjectFields(object obj) // выводит список полей, их имена и значения:
            {
                foreach (FieldInfo mi in obj.GetType().GetFields())
                    // Вывод в лог_WriteLine(mi.FieldType.Name + " " + mi.Name + " = " + mi.GetValue(obj) + mi.FieldType.ToString());
            }
            void TraceObjectProperties(object obj) // выводит список свойств объекта:
            {
                foreach (PropertyInfo pi in obj.GetType().GetProperties())
                    // Вывод в лог_WriteLine(pi.PropertyType.Name + " " + pi.Name + " = " + pi.GetValue(obj, null));
            }
            void TraceObjectMethods(object obj)
            {
                foreach (MethodInfo mi in obj.GetType().GetMethods())
                     // Вывод в лог_WriteLine(mi.Name + " " + mi.IsPublic);
    
            }
            #endregion TraceObject
    Спасибо! Будем пробовать

  7. #7
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    Снова поднимаю данную тему. Пока остановились на COMPortByteSync, ни как не можем разобраться, как полученное значение на выходе Response передать в Программу для дальнейших действий. Response имеет тип Array[*] byte, в Программе переменную можно создать массив с заданным размером. Компилятор ругается в таком случае. Если использовать Полное имя, компилятор тоже ругается.

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    denprox, если C# то там private(public) byte[] name =
    Вы какое имя пытаетесь использовать и где?

  9. #9
    Пользователь
    Регистрация
    02.11.2012
    Адрес
    г.Челябинск
    Сообщений
    107

    По умолчанию

    С# оказалось мы не можем использовать, лицензия Standart. А с вопросом разобрались. Если создать программу (в нашем случае ST), при создании входящего параметра, необходимо установить флажок "Ось 0" на вкладке Массивы, поставить тип массива Byte. Тогда будет создан параметр типа ARRAY[*] OF BYTE. Что позволяет установить связь с выходным параметром Response в COMPortByteSync. Ну а дальше уже в скрипте можно разобрать посылку. И вот тут появился новый вопрос, как преобразовать например массив из 4 байт в число типа Real ?

    Прибор присылает массив 41 байт.
    [41, 225, 245, 6, 1, 243, 47, 206, 55, 204, 12, 26, 9, 0, 0, 154, 153, 153, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 215, 163, 59, 0, 0, 0, 0, 0, 15]

    5-8 байты - Тепловая энергия. [243, 47, 206, 55]. Формула для преобразования будет такой: B3*(2^24) + B2*(2^16) + B1*(2^8) + B0. Чтобы не изобретать велосипед, какие встроенные функции позволяют сделать это в MS4D ?
    Пытались DWORD_OF_BYTE (OSCAT) затем DWORD_TO_REAL использовать, но результат совсем не тот, что ожидается.

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    У вас -1,39 или 0.0000245794417 или 4.42410941e-10 ?
    В общем тут можно посмотреть ваши f3 2f ce 37 в зависимости от расположения байт https://www.scadacore.com/tools/prog...hex-converter/

    И вроде на FBD в MS4D были функции для этого, должны быть.
    Последний раз редактировалось melky; 14.04.2025 в 13:58.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 06.04.2022, 07:51
  2. Ответов: 13
    Последнее сообщение: 05.07.2019, 11:34
  3. Ответов: 4
    Последнее сообщение: 05.06.2017, 20:40
  4. Ответов: 10
    Последнее сообщение: 22.03.2017, 08:57
  5. Общение с монитором Com-порта
    от Makin_Pavel в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 06.03.2017, 10:11

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •