Страница 130 из 1042 ПерваяПервая ... 3080120128129130131132140180230630 ... ПоследняяПоследняя
Показано с 1,291 по 1,300 из 10414

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #1291
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,121

    По умолчанию

    Цитата Сообщение от Колыбельников Посмотреть сообщение
    Можно считать программу с ПР
    Нельзя ,ни как не получится ,да и зачем ,если она делается в течении часа с нуля.Только тема -области применения ПР
    электронщик до мозга костей и не только

  2. #1292

    По умолчанию

    прошу прощения за очередной тупой вопрос, но ответа на форуме найти не смог. Нужно отправить ответ на запрос модбас мастера. Длина данных в ответе 120 байт. Уперся в то, что не могу понять как преобразовать различные типы данных переменных в HEX'ы(и наоборот) для последующей упаковки их в массив ответа.
    Чтобы понять рекурсию нужно понять рекурсию

  3. #1293

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Уверены, что Вам именно 16-ричная система нужна? Может просто байты местами менять требуется?
    что-то у меня крыша уже едет. Я перемешал яблоки с картошкой. Нужно же ведь всего лишь перевести из десятичной в шестнадцатиричную)))) А я мозг парю как перевести из float в шестнадцатиричную систему))))) Ну анекдот)) извините за беспокойство

    Как стандартными средствами перевести число из одной СС в другую? Неужели нет никакой функции соответствующей? Вручную писать переводы из одной СС в другую вообще не серьезно(((((
    Чтобы понять рекурсию нужно понять рекурсию

  4. #1294
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,838

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    не совсем уверен. Это все у меня касательно текущей задачи по подгонке ПЛК под Модбас устройство-мастер. Я от него слушаю входящий запрос (запрос ведь в hex), должен вычленить необходимые байты которые указывают на то, что он хочет, и дать ему данные которые он запросил упаковав их опять же в modbus rtu посылку, которая опять же в hex'ах. Или я что-то неправильно понимаю?

    добавлено: что-то у меня крыша уже едет. Я перемешал яблоки с картошкой. Нужно же ведь всего лишь перевести из десятичной в шестнадцатиричную)))) А я мозг парю как перевести из float в шестнадцатиричную систему))))) Ну анекдот)) извините за беспокойство

    Можно ли стандартными средствами перевести число из одной СС в другую?
    1. Что значит "подгонка ПЛК под Модбас устройство-мастер?
    2. Что значит "Нужно отправить ответ на запрос модбас мастера. Длина данных в ответе 120 байт. Уперся в то, что не могу понять как преобразовать различные типы данных переменных в HEX'ы(и наоборот) для последующей упаковки их в массив ответа"?
    Если Вы пишете свой собственный Модбас-слейв модуль, то преобразовать REAL можно так
    В четыре байта
    Код:
    (* FLOAT2BYTES                                   *)
    (* Converts a REAL Value into the corresponding  *)
    (* digital representation. [Inverse Operation of *)
    (* "BYTES2FLOAT"]                                *)
    FUNCTION float2bytes : ARRAY [0..3] OF BYTE
    VAR_INPUT
    	IN: REAL;
    END_VAR
    VAR
    	ptv: POINTER TO ARRAY [0..3] OF BYTE;
    END_VAR
    
    ptv:=ADR(IN);
    float2bytes:=ptv^;
    в DINT так
    Код:
    (* FLOAT2DINT                                   *)
    (* Converts a REAL Value into the corresponding  *)
    (* digital representation. [Inverse Operation of *)
    (* "DINT2FLOAT"]                                *)
    FUNCTION float2dint : DINT
    VAR_INPUT
    	IN: REAL;
    END_VAR
    VAR
    	ptv: POINTER TO DINT;
    END_VAR
    
    ptv:=ADR(IN);
    float2dint:=ptv^;
    Это функции из бесплатной библиотеки HBMutilities.lib http://www.users-conference.com/se_d...es/HBMutil.zip
    А если используете конфигуратор, то не понятно над чем Вы бьетесь.
    Проверить преобразования в различные форматы можно здесь http://www.binaryconvert.com/index.html
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #1295

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    1. Что значит "подгонка ПЛК под Модбас устройство-мастер?
    2. Что значит "Нужно отправить ответ на запрос модбас мастера. Длина данных в ответе 120 байт. Уперся в то, что не могу понять как преобразовать различные типы данных переменных в HEX'ы(и наоборот) для последующей упаковки их в массив ответа"?
    Если Вы пишете свой собственный Модбас-слейв модуль, то преобразовать REAL можно так
    В четыре бита
    Код:
    (* FLOAT2BYTES                                   *)
    (* Converts a REAL Value into the corresponding  *)
    (* digital representation. [Inverse Operation of *)
    (* "BYTES2FLOAT"]                                *)
    FUNCTION float2bytes : ARRAY [0..3] OF BYTE
    VAR_INPUT
    	IN: REAL;
    END_VAR
    VAR
    	ptv: POINTER TO ARRAY [0..3] OF BYTE;
    END_VAR
    
    ptv:=ADR(IN);
    float2bytes:=ptv^;
    в DINT так
    Код:
    (* FLOAT2DINT                                   *)
    (* Converts a REAL Value into the corresponding  *)
    (* digital representation. [Inverse Operation of *)
    (* "DINT2FLOAT"]                                *)
    FUNCTION float2dint : DINT
    VAR_INPUT
    	IN: REAL;
    END_VAR
    VAR
    	ptv: POINTER TO DINT;
    END_VAR
    
    ptv:=ADR(IN);
    float2dint:=ptv^;
    А если используете конфигуратор, то не понятно над чем Вы бьетесь.
    Проверить преобразования в различные форматы можно здесь http://www.binaryconvert.com/index.html
    да, я пишу свой модбас слейв, потому что в конфигурации ПЛК нет деления на холд и инпут регистры. Плк опрашивается устройством мастером которое групповым запросом опрашивает регистры modbus по 120 байт за раз. Поменять это устройство никак невозможно, поэтому нужно подстроить ответы ПЛК под эти запросы. В вашем варианте получается тип byte. вроде все верно, но все равно не будет в шестнадцатиричной системе, а ведь посылки MB должны быть в шестнадцатиричной или нет?
    Чтобы понять рекурсию нужно понять рекурсию

  6. #1296

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    1. Что значит "подгонка ПЛК под Модбас устройство-мастер?
    Стандартная ситуация.
    Есть некоторая система. Одно устройство умерло, отремонтировать или заменить на аналогичное или совместимое - не возможно (по любой причине). Программа в ведущем контроллере - не доступна.
    Приходится - вот так, лепить эмуляцию.

    Но ответа - пересекаются пространства input и holding регистров я так и не услышал. Если не пересекаются (а чаще всего - так) - то и ладно, не все ли равно, какой функцией считывать.

  7. #1297

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    да, я пишу свой модбас слейв, потому что в конфигурации ПЛК нет деления на холд и инпут регистры. Плк опрашивается устройством мастером которое групповым запросом опрашивает регистры modbus по 120 байт за раз. Поменять это устройство никак невозможно, поэтому нужно подстроить ответы ПЛК под эти запросы. В вашем варианте получается тип byte. вроде все верно, но все равно не будет в шестнадцатиричной системе, а ведь посылки MB должны быть в шестнадцатиричной или нет?
    А как Вы собираетесь разобрать перехваченный запрос? Не слишком ли рискованно, если доки - нет

  8. #1298
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,838

    По умолчанию

    Если все таки собственный модуль Модбас-слейв, то подсчитать CRC можно Функцией CRC_GEN от OSCATA описание http://www.owen.ru/forum/showpost.ph...84&postcount=4
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  9. #1299
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,838

    По умолчанию

    Цитата Сообщение от S.A.D. Посмотреть сообщение
    да, я пишу свой модбас слейв, потому что в конфигурации ПЛК нет деления на холд и инпут регистры. Плк опрашивается устройством мастером которое групповым запросом опрашивает регистры modbus по 120 байт за раз. Поменять это устройство никак невозможно, поэтому нужно подстроить ответы ПЛК под эти запросы. В вашем варианте получается тип byte. вроде все верно, но все равно не будет в шестнадцатиричной системе, а ведь посылки MB должны быть в шестнадцатиричной или нет?
    Вы получите массив из четырех байтов. В них будут нолики и единички - двоичная система счисления!
    А HEX это тоже самое, только для удобства восприятия человеком.
    0000b=0h
    0001b=1h
    0010b=2h
    0011b=3h
    ............
    1110b=Eh
    1111b=Fh
    и соответственно представление одного и того же числа
    десятичное 23=(0001 0111)b=17h
    десятичное 203=(1100 1011)b=CBh
    Так что Вы точно зациклились на пустом месте
    Как и с
    нет деления на холд и инпут регистры
    совершенно на ровном месте
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #1300
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,838

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    надеюсь Вы знаете что библиотека модбас, в обход конфигуратора, существует, для некоторых устройств только требуется в REAL-ах поменять байты местами
    А разве в ModBus.lib есть блоки для создания Slave?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Страница 130 из 1042 ПерваяПервая ... 3080120128129130131132140180230630 ... ПоследняяПоследняя

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

Ваши права

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