Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 38

Тема: Связь ПЛК - ПК via RS485

  1. #11

    По умолчанию

    Какой параметр отвечает за индекс переменной и зачем нужно имя, если обращение к переменной осуществляется по адресу?

    Опрос как я понял осуществляется с помощью библиотеки owen_io. Однако в функции OpenPort задается RS485CONV_MANUAL, хотя нужен RS232.

    Каким образом можно узнать адрес переменной, которая создается ОВЕН slave, чтобы применить функцию ReadIEEE32.

    С уважением, Павел.

  2. #12

    По умолчанию

    Для начала рекомендую прочитать манула по протоколу ОВЕН, есть на нашем сайте. Многое станет понятнее. Имя преобразуется по спец. алгоритму в 2-х байтовый номер. сделано для удобства восприятия человеком.

    RS485CONV_MANUAL - как раз ручное управление, подходит и для 232. Просто когда писалась библиотека owen_io, о ПЛК и его 232 портах ещё никто не знал

  3. #13

    По умолчанию

    Уточняю - для связи по RS232 ставьте именно RS485_Automatic.

  4. #14

    По умолчанию

    Уважаемый Владислав, не могли бы вы подсказать ошибку в моих действиях.

    Я использую 4-х символьное имя параметра, например aaaa.

    Затем перевожу его в хэш-имя, которое получается 32-х битное (хотя в мануале сказано, что оно должно быть 16-битным), и прописываю его в CodeSys.

    Далее я перевожу 32-битное значение в 16-ричный адрес и передаю его в качестве параметра функции ReadIEEE32.

    Заранее спасибо, Павел.

  5. #15

    По умолчанию

    Ни надо ничего никуда переводить. пишите в соответствующем поле aaaa и всё.
    Посмотрите пример конфигурирования мастера ОВЕН в док-ции. Для slave аналогично.

  6. #16

    По умолчанию

    А вы не могли бы привести пример, который бы содержал имя переменной, 16-битный номер, адрес устройства и адрес переменной.

    С уважением, Павел.

  7. #17

    По умолчанию

    Пример для ПЛК или для owen_io?

  8. #18

    По умолчанию

    Пример, в котором можно узнать адрес переменной, заданной в ПЛК, для считывания ее с помощью owen_io.

  9. #19

    По умолчанию

    В owen_io также надо задать :
    1. Адрес slave устройства (см. параметры ОВЕН slave)
    2. Имя переменной (то самое аааа)
    3. Индекс, если есть (для начала попробуйте без него) - (-1)



    int ReadIEEE32(DWORD adr,DWORD adr_type,char *command,float &value,int &time,int index);
    Пусть адрес=24.
    val - значение
    time - время для типа float+time, Вам не интересно, но переменную надо подставить
    Индекса нет

    res := ReadIEEE32(24, 0, 'aaaa', val, tm, -1);

  10. #20

    По умолчанию

    Большое спасибо за пример. Но после выполнения данной функции у меня возникает ошибка обмена (-100). Не могли бы вы подсказать, в чем может быть ошибка?

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

Ваши права

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