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

Тема: ПЛК-63 не устанавливаются состояния выходов c регистров по modbus

  1. #11

    По умолчанию

    Адрес modbus (копия области %I, %Q) - 4xxx - вот его и брать . ЦЕЛИКОМ.

  2. #12

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Адрес modbus (копия области %I, %Q) - 4xxx - вот его и брать . ЦЕЛИКОМ.
    Так я же приводил дамп. Еще раз его повторяю:
    Для адреса 4_098(dec) аналоговый вход 0 значение с АЦП:
    По адресу 098(dec) (62(hex) ) ф-я 4 ответ 0x84 exception номер 4.
    Скажите не абстрактно, а по дампу, что именно в нем не верно?

    Приведите пож. дамп пакета, как прочитать из области непрерывного чтения параметров состояния аналогового входа 0 (2 регистра). Адреса для ПЛК63 указаны на стр 27 по ссылке http://upload.caxapa.ru/plc63_config.pdf

    Код:
    Request [10][04][00][B8][00][02][F2][AF]
    Response [10][84][02][92][C4]
    /*===========================================*/
    Аналоговые Вх.{4098, 4099} {4102, 4103}{4106, 4107}{4110, 4111}{4114, 4115}{4118, 4119}{4122, 4123}
    4098(dec)= 1002(hex)
    Request [10][04][10][02][00][02][D7][8A]
    Response[10][04][04][E1][29][42][90][2D][BD]
    /*===========================================*/
    0098(dec)= 62(hex)
    Request [10][04][00][62][00][02][D3][54]
    Response [10][84][02][92][C4]
    /*===========================================*/

  3. #13

    По умолчанию

    Адрес modbus (копия области %I, %Q) - 4xxx - вот его и брать . ЦЕЛИКОМ.
    Правильно: Чтение из области копии I/O. Смещение 0х1000+0х02 адрес первого канала AI. Все как по документу.
    Request [10][04][10][02][00][02][D7][8A]
    Response[10][04][04][E1][29][42][90][2D][BD]
    Неправильно: адрес 0х62 4 байта - такого параметра нету.
    Request [10][04][00][62][00][02][D3][54]
    Response [10][84][02][92][C4]
    Правильный адрес для обращения как к параметру, т.е. для чтения (целиком)/ записи как параметра - 0х18

    P.S. тут некоторая терминологическая путаница. Надеюсь теперь понятно.

  4. #14

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Адрес modbus (копия области %I, %Q) - 4xxx - вот его и брать . ЦЕЛИКОМ.
    Правильно: Чтение из области копии I/O. Смещение 0х1000+0х02 адрес первого канала AI. Все как по документу.
    Request [10][04][10][02][00][02][D7][8A]
    Response[10][04][04][E1][29][42][90][2D][BD]
    Неправильно: адрес 0х62 4 байта - такого параметра нету.
    Request [10][04][00][62][00][02][D3][54]
    Response [10][84][02][92][C4]
    Правильный адрес для обращения как к параметру, т.е. для чтения (целиком)/ записи как параметра - 0х18

    P.S. тут некоторая терминологическая путаница. Надеюсь теперь понятно.

    Т. е. указывается адрес, приведённый в документации? 4096(dec) 1002(hex).
    И 4 - никакая не ф-я, а часть адреса, т.к. байты 2,3 в пакете - это байты адреса согласно спецификации modbus-rtu. (если считать первый байт в пакете номером ноль(идентификатор(адрес) slave_абонента).)

    я так и делал в начале. Можно посмотреть дампы в начале темы.

    Тогда для записи в регистр управления выход 0 ? :

    адрес 4184(dec) 1058(hex) приведите пож. дамп, как писать float(2 16-разрядных регистра) в регистр out_0 ПЛК за одну транзакцию.
    Код:
    Request   [10][10][10][58][00][02][04][00][00][3F][80][7A][99]
    Response  [10][90][01][DD][C5]

  5. #15

    По умолчанию

    запись только по адресам в 1-й колонке, и только параметр целиком.

  6. #16

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    запись только по адресам в 1-й колонке, и только параметр целиком.
    Т.е. по адресам {0,1}.. {10,11} ?

    Float пишется, но только за 2шт 2хбайтных транзакции. Только ф-ей 0x06. Ф-я 0x10 дает ошибку.

    Самое интересное, что мои (пользовательские) float конфигурационные переменные пишутся ф-ей 0x10 за 1(одну) (2шт 2х байтных регистра (4 байта)) транзакцию ok !!

    Напр, по адресам pid_ki 100(dec), pid_kp 102(dec)...

  7. #17

    По умолчанию

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

  8. #18

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    какую такую ошибку? нет никакой принципиальной разницы между пользовательскими и параметрами в конфигурации. за исключением контроля диапазона. может вы в нее число вне диапазона пишите?
    Так выше же приведен дамп:
    Пишется число 1.0 [00][00][3F][80]; Байты переставляются местами согласно спецификации modbus. Float отплавляются в ПЛК теми же ф-ями, что и пользовательсткие конфигурациооные float, которые пишутся и читаем на ЖКИ ПЛК то же значение, что пишется.

    У кого есть ПЛК-63 - можете попробовать включить и выключить выход 0 по modbus? Бесплатная утилита http://www.terring.ru/files/apps/Ter...-Installer.exe

    За 2 транзакции это число (1.0 [00][00][3F][80]) пишется, но только по адресам {0,1}.И с них же читается. На ПЛК щелкает релюшка.
    М.б. в документациии групповые адреса не те?
    Код:
    /*============================*/
    1.0== [00] [00] [80] [3f]
    0.5== [00] [00] [00] [3f]
    0.1==[cd] [cc] [cc] [3d]
    0.01==[0a] [d7] [23] [3c]
    /*============================*/
    /* программка печатает дамп 4х байт памяти, которое занимает float число  */
    int main()
    {float v;
     int i;
     unsigned char *p;
     p=(unsigned char *) &v;
     v= 1.0;
     for(i=0; i < 4; i++)
        printf("[%02x] ", p[i]);
     return;
    }
    Последний раз редактировалось Gosha; 13.04.2010 в 08:44.

  9. #19

    По умолчанию

    Request
    00:07 [10][10][00][00][00][02][04][00]
    08:0F [00][3F][80][B3][C3]
    Response
    00:07 [10][10][00][00][00][02][42][89]
    Все прекрасно записывается и щелкает.
    И на следующем выходе тоже.
    Request
    00:07 [10][10][00][02][00][02][04][00]
    08:0F [00][3F][80][32][1A]
    Response
    00:07 [10][10][00][02][00][02][E3][49]

  10. #20

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Request
    00:07 [10][10][00][00][00][02][04][00]
    08:0F [00][3F][80][B3][C3]
    Response
    00:07 [10][10][00][00][00][02][42][89]
    Все прекрасно записывается и щелкает.
    И на следующем выходе тоже.
    Request
    00:07 [10][10][00][02][00][02][04][00]
    08:0F [00][3F][80][32][1A]
    Response
    00:07 [10][10][00][02][00][02][E3][49]
    ok. Работает. Релюшка щелкает.
    Но по адресам из столбика 3 таблицы (групповое чтение параметров) читается нулевые значения. А по адресу из столбика 2 -правильные.

    Код:
     
    Request   [10][10][00][02][00][02][04][00] [00][00][00][22][4A]
    Response [10][10][00][02][00][02][E3][49]
    
    Request    [10][04][10][5A][00][02][56][59]
    Response  [10][04][04][00][00][00][00][FA] [85]
    
    Request   [10][04][00][02][00][02][D3][4A]
    Response  [10][04][04][00][00][3F][80][EA] [D5]

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

Ваши права

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