Страница 6 из 8 ПерваяПервая ... 45678 ПоследняяПоследняя
Показано с 51 по 60 из 73

Тема: ПЛК 154 + ModBus проблема

  1. #51
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    519

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Лучший способ выяснить правду, как и что надо считывать, программа Owen OPC Server, ставиться за 2 мин. на комп. Любой бит и регистр можно настроить и проверить. Чтение и запись, любая функция, RS485 через переходник типа АС-4, есть и TCP https://owen.ru/product/new_opc_server Вложение 63063
    Можете проверить программу? Копирую сразу как есть.
    Переменные:
    Скрытый текст:

    PROGRAM PLC_PRG
    VAR
    RHR: MB_RD_HOLD_REGS; (*ôóíêöèÿ 03 - ÷òåíèå ïàðàìåòð&# 224; òèïà INT*)
    RIR:MB_RD_INPUTS; (*ôóíêöèÿ 02 - ÷òåíèå ñòàòóñà äèñêð âõ.*)
    RCoils:MB_RD_COILS;
    WrR: MB_WR_SNG_REG; (*ôóíêöèÿ 6 - çàïèñü åäåíè÷íî&# 227;î ðåãèñòð&#224 ;*)
    WrCoil: MB_WR_SNG_COIL; (*ôóíêöèÿ 5 - çàïèñü åäåíè÷íî&# 227;î äèñêð âõ. áèòà*)
    RIRs:MB_RD_INP_REGS;

    Buffer1: ARRAY[0..255] OF BYTE; (* áàéòîâû&#233 ; áóôåð äàííûõ *)
    Buffer2: ARRAY[0..255] OF BYTE; (* áàéòîâû&#233 ; áóôåð äàííûõ *)
    Buffer3: ARRAY[0..255] OF BYTE; (* áàéòîâû&#233 ; áóôåð äàííûõ *)
    Buffer4: ARRAY[0..255] OF BYTE; (* áàéòîâû&#233 ; áóôåð äàííûõ *)
    Buffer10: ARRAY[0..255] OF BYTE; (* áàéòîâû&#233 ; áóôåð äàííûõ *)


    cmpl: BOOL; (*ïðèçíàê çàâåðøåí&# 237;îñòè ðàáîòû ôóíêöèè*)
    port_opened: BYTE := 0; (*ðåçóëüòà ò îòêðûòè&#255 ; ïîðòà*)
    Settings:COMSETTINGS; (* íàñòðîéê&# 232; ïîñëåäîâ&# 224;òåëüíîã&#23 8; ïîðòà *)
    com_num: PORTS:=0; (*0 - 485-1
    1 - 232 - COM1
    2 - 485-2 - COM2
    4 - DBGU - COM4 *)


    enable: BOOL; (*ñîñòîÿíè å ðàáîòû áëîêà*)
    err: INT; (*íîìåð îøèáêè*)
    TimeOut: TIME:=T#500ms; (*òàéìàóò*)
    DataSize: WORD; (*êîë-âî ñ÷èòàííû&# 245; áàéòîâ *)
    ptr_byte:POINTER TO BYTE; (*óêàçàòåë ü íà òèï byte*)
    COM_SERVICE1: COM_SERVICE;
    state: WORD := 0; (*ñîñòîÿíè å*)


    (*ñ÷èòàííî å çíà÷åíè&#229 ;*)
    status2:WORD;
    real2: REAL;
    real3: REAL;
    status3: WORD;
    real4: REAL;
    status4: WORD;
    real5: REAL;
    status5: WORD;
    real6: REAL;
    status6: WORD;
    real7: REAL;
    status7: WORD;
    real8: REAL;
    status8: WORD;
    wrd1: WORD:=1;
    wrd_rele_0:WORD:=0;
    t21: WORD := 0; (* *)
    t12: WORD; (* *)
    t14: WORD; (* *)
    t15: WORD; (* *)
    t17: WORD; (* *)
    t16: WORD; (* *)
    t18: WORD; (* *)
    t19: WORD; (* *)
    t20: WORD; (* *)
    t25: WORD; (* *)
    t13: WORD := 0;(* *)
    t22: WORD; (* *)
    t22_2: WORD := 0; (* *)
    t24: WORD := 0; (* *)
    t24_2: WORD := 0; (* *)
    wrd_out_tok: WORD := 0;
    t30: WORD;
    count_err_30: WORD;
    RT_t1:R_TRIG;
    In_1: DWORD;
    Sh_1:BOOL;
    Sh_2:BOOL;
    Sh_3:BOOL;
    Sh_4:BOOL;
    V1:WORD;
    V2:WORD;
    V3:WORD;

    enable2: BOOL;
    enable3: BOOL;
    enable4: BOOL;
    enable5: BOOL;
    ch1: WORD;
    reg1: WORD;
    rc1: WORD;
    rc2: WORD;
    rr1: WORD;
    rr2: BYTE;
    rir1: WORD;
    rir2: WORD;
    enable6: BOOL;
    cmpl1: BOOL;
    err1: BYTE;
    ss:BOOL;
    x1: WORD;
    x2: WORD;
    x3: WORD;
    END_VAR


    Программа:
    Скрытый текст:


    IF port_opened=0 THEN
    Settings.Port:=com_num; (*????? COM-????? RS485*)
    Settings.dwBaudRate:=9600; (*????????*)
    Settings.byParity:=0;
    Settings.dwTimeout:=0;
    Settings.byStopBits:=2;
    Settings.dwBufferSize:=0;
    Settings.dwScan:=0;
    END_IF

    COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );
    (*???? COM-???? ??????, ?? ????????? ? ?????? ? ???????? ?????? *)
    IF COM_SERVICE1.ready THEN
    port_opened:=2;
    END_IF

    (*

    (*RCoils(
    Enable:=enable , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*????? ?1 *)
    FirstAddr:=rc1 , (*????? ????????*)
    Quantity:=rc2 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer1 , (* ????? ?????? *)
    Complete=>cmpl , (* ??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize ); *) (*???-?? ????????? ?????? *)
    RIRs(
    Enable:=enable3 , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*????? ?1 *)
    FirstAddr:=rr1 , (*????? ????????*)
    Quantity:=rr2 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer1 , (* ????? ?????? *)
    Complete=>cmpl , (* ??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize ); ;
    RT_t1(CLK:=RIRs.Complete , Q=> );
    IF RT_t1.Q THEN
    t24:=Buffer1[4]+Buffer1[5];
    END_IF

    IF RCoils.Complete THEN
    v1:=1;
    END_IF

    WrCoil(
    Enable:=enable2 ,
    Mode:=MB_RTU ,
    DevAddr:=1 ,
    CoilAddr:=V2 ,
    Value:=Sh_1 ,
    ComHandle:=Settings.Port ,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err );
    WrR(
    Enable:=enable4 ,
    Mode:=MB_RTU ,
    DevAddr:=1 ,
    RegAddr:=reg1 ,
    Value:=ch1 ,
    ComHandle:=Settings.Port ,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err );

    (*RhR(
    Enable:=enable5 , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*?????*)
    FirstAddr:=3 , (*????? ????????*)
    Quantity:=1 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer2 , (* ????? ?????? *)
    Complete=>cmpl , (*??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize );*)
    *)
    IF port_opened=2 THEN
    RiR(
    Enable:=enable6 , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*????? ?1 *)
    FirstAddr:=rc1 , (*????? ????????*)
    Quantity:=rc2 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer10 , (* ????? ?????? *)
    Complete=>cmpl1 , (* ??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize );
    (*RhR(
    Enable:=enable6 , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*????? ?1 *)
    FirstAddr:=rir1 , (*????? ????????*)
    Quantity:=rir2 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer10 , (* ????? ?????? *)
    Complete=>cmpl , (* ??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize );*)
    IF cmpl1 THEN
    (*t30:=RiR.Exception;*)
    IF RiR.Exception=0 THEN (*???? ??? ??????, ?? ???????? ?????? ?? ?????? *)


    (*????1*)
    ptr_byte:=ADR(In_1);(**)
    ptr_byte^:=buffer10[4];
    ptr_byte:=ptr_byte+1;
    ptr_byte^:=buffer10[5];
    (*ptr_byte:=ptr_byte+1;
    ptr_byte^:=buffer10[3];
    ptr_byte:=ptr_byte+1;
    ptr_byte^:=buffer10[2];*)
    (*
    x1:=BYTE_TO_WORD(BUFFER10[3]) OR SHL(BYTE_TO_WORD(BUFFER10[2]),8);
    x2:=BYTE_TO_WORD(BUFFER10[5]) OR SHL(BYTE_TO_WORD(BUFFER10[4]),8);
    x3:=BYTE_TO_WORD(BUFFER10[8]) OR SHL(BYTE_TO_WORD(BUFFER10[9]),8);*)
    enable6 := FALSE;

    ss:=FALSE;

    ELSE t14:=t14+1;
    ;
    END_IF
    END_IF

    END_IF
    (*
    CASE state OF
    0: (* ?1 *)
    enable:=1;
    IF port_opened=2 THEN (*?????? ???????????????????*)
    (* ??????? 02 - ?? ????????? ???????? ????????? ???? bool ?? ??????? ?? ????????? Modbus-RTU*)
    RIR(
    Enable:=enable , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*????? ?1 *)
    FirstAddr:=16 , (*????? ????????*)
    Quantity:=31 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer1 , (* ????? ?????? *)
    Complete=>cmpl , (* ??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize ); (*???-?? ????????? ?????? *)


    (*???? ?????????? ??????? ?????????? ????????, ?? *)
    IF cmpl THEN
    IF err=0 THEN (*???? ??? ??????, ?? ???????? ?????? ?? ??????, ????????? ??????????*)
    (*?????? ???????? ???????? ??????? ?????? ?????? ??? Float32 ? ??????? ?????? ?????? ??? Int16*)
    (*??????? ?????????? ???????? "??????-??????" *)
    state:=1;
    enable:=0;
    ELSE t12:=t12+1;
    state:=1;
    END_IF
    END_IF
    END_IF

    1*?????????? ????????? ?? ????? ?? ?????????? ? ??????? ?1*)
    enable:=1;
    IF port_opened=2 THEN (*?????? ???????????????????*)
    (* ??????? 03 ????? - ?? ????????? ???????? ????????? ???? int16 ?? ??????? ? ??????? 1 *)
    RHR(
    Enable:=enable , (* ?????????? ?????? ????? *)
    Mode:=MB_RTU , (*????? ????????*)
    DevAddr:=1 , (*?????*)
    FirstAddr:=25 , (*????? ????????*)
    Quantity:=1 , (*?????????? ?????????*)
    ComHandle:=Settings.Port , (*????? COM-?????*)
    TimeOut:=TimeOut , (*??????? *)
    Buffer:=Buffer2 , (* ????? ?????? *)
    Complete=>cmpl , (*??????? ?????????? ???????? *)
    Exception=>err , (* ??????? ?????? ?????????? ????????? MODBUS ??? ??????:0x00 – ?????? ??? ?????????? ?? ??????????, 0xFE – ?????????? ?????? ???,0xFF – ?????? ???????? *)
    ByteCnt=>DataSize ); (*???-?? ????????? ?????? *)
    (*???? ?????????? ??????? ?????????? ????????, ?? *)

    IF cmpl THEN
    IF err=0 THEN (*???? ??? ??????, ?? ???????? ?????? ?? ?????? *)


    (*????1*)
    ptr_byte:=ADR(In_1);(**)
    ptr_byte^:=buffer1[5];
    ptr_byte:=ptr_byte+1;
    ptr_byte^:=buffer1[4];


    state:=2;
    enable:=0;
    ELSE t14:=t14+1;
    state:=2;
    END_IF
    END_IF
    END_IF

    2*COIL*)
    enable:=1;
    IF port_opened=2 THEN (*?????? ???????????????????*)
    (* ??????? 05 *)
    WrCoil(
    Enable:=enable ,
    Mode:=MB_RTU ,
    DevAddr:=1 ,
    CoilAddr:=V1 ,
    Value:=Sh_1 ,
    ComHandle:=Settings.Port ,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err );

    (*???? ?????????? ??????? ?????????? ????????, ?? *)

    IF cmpl THEN
    IF err=0 THEN

    state:=3;
    enable:=0;
    ELSE t15:=t15+1;
    state:=3;
    END_IF
    END_IF
    END_IF

    3*COIL*)
    (*enable:=1;
    IF port_opened=2 THEN (*?????? ???????????????????*)
    (* ??????? 05 *)
    WrCoil(
    Enable:=enable ,
    Mode:=MB_RTU ,
    DevAddr:=1 ,
    CoilAddr:=0 ,
    Value:=Sh_2 ,
    ComHandle:=Settings.Port ,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err );

    (*???? ?????????? ??????? ?????????? ????????, ?? *)

    IF cmpl THEN
    IF err=0 THEN

    state:=3;
    enable:=0;
    ELSE t16:=t16+1;
    state:=4;
    END_IF
    END_IF
    END_IF*)

    state:=4;
    4:
    enable:=1;
    IF port_opened=2 THEN (*?????? ???????????????????*)
    (* ??????? 06*)
    WrR(
    Enable:=enable ,
    Mode:=MB_RTU ,
    DevAddr:=1 ,
    RegAddr:=V2 ,
    Value:=v3 ,
    ComHandle:=Settings.Port ,
    TimeOut:=TimeOut ,
    Complete=>cmpl ,
    Exception=>err );
    (*???? ?????????? ??????? ?????????? ????????, ?? *)


    IF cmpl THEN
    IF err=0 THEN (*???? ??? ??????, ?? ???????? ?????? ?? ??????, ????????? ??????????*)
    state:=5;
    enable:=0;
    ELSE t17:=t17+1;
    state:=0;
    END_IF
    END_IF
    END_IF


    END_CASE*)

    В программе работает только блок RiR со строки 87
    Начальный адрес задаю 29, количество 1.
    Тайм аут менял с 5мс до 2000 мс. Но выдает ошибку тайм аута RiR.Exception= 255
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).
    Опыт растет прямо пропорционально выведенному из строя оборудованию.

  2. #52
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,054

    По умолчанию

    Под словом проект подразумевают проект а не выжимки.
    Для битов ставьте стартовый адрес кратный 8-ми. Спасибо - овену. Но всегда есть syslibcom

    Цитата Сообщение от Пьер Посмотреть сообщение
    Я так делал. 24 адрес у восьми битного запроса.
    Делал с 0адр 8бит 8 адр 8бит 16 адр 8бит 24 адр. То есть запрос на 4 байта. Так тоже не работает.
    Но это у Овена работает.
    вот.png

    Работает ли у того девайса ?

  3. #53
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,054

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Откуда там могут быть три включенных бита, если с 3 бита по 10, задействован только 9 бит? .
    Для Вас - только 9й бит

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    С 0 по 7 задействовано только 2 бита..
    Свободно это необязательно 0. Обратите внимание - там нет R или W. Т.е. если и читается - не обращайте внимание на содержимое.

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    .. просто хочу понять как работает это китайское изделие..
    Я тоже не знаю как работает это изделие.

  4. #54

    По умолчанию

    Пьер, неужели трудно запомнить, выкладывайте проект, а не куски.
    Блок есть только у вас и разбираться вам надо, мы только подсказывать можем. Программой Owen OPC Server подключитесь к блоку и проверьте как считываются биты.
    Когда вы точно узнаете как правильно читать (записывать), по одному биту или байтом по 8 бит или регистром по 16 бит, выкладывайте сюда и только после этого можно программу писать. Частота опроса и тайм аут должны быть 500 ms.
    Добавляйте по одному параметру (тегу), сначала бит чтение, потом бит запись и т.д., если GOOD, значит читаете правильно.
    Вот пример опроса ПЛК по ТСР 1 Опрос ПЛК по ТСР.jpg
    Последний раз редактировалось kondor3000; 09.10.2022 в 12:40.

  5. #55
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    519

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Под словом проект подразумевают проект а не выжимки.
    Для битов ставьте стартовый адрес кратный 8-ми. Спасибо - овену. Но всегда есть syslibcom


    Но это у Овена работает.
    вот.png

    Работает ли у того девайса ?
    У этого девайса это не работает.
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).
    Опыт растет прямо пропорционально выведенному из строя оборудованию.

  6. #56
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    519

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Пьер, неужели трудно запомнить, выкладывайте проект, а не куски.
    Блок есть только у вас и разбираться вам надо, мы только подсказывать можем. Программой Owen OPC Server подключитесь к блоку и проверьте как считываются биты.
    Когда вы точно узнаете как правильно читать (записывать), по одному биту или байтом по 8 бит или регистром по 16 бит, выкладывайте сюда и только после этого можно программу писать. Частота опроса и тайм аут должны быть 500 ms.
    Добавляйте по одному параметру (тегу), сначала бит чтение, потом бит запись и т.д., если GOOD, значит читаете правильно.
    А если некоторые биты из этого списка 0..31 не записываются, это что значит?
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).
    Опыт растет прямо пропорционально выведенному из строя оборудованию.

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

    По умолчанию

    Пьер - вам уже сказали, проверьте другой программой опрос группой нескольких битов, если в Мастер Скада нет такой возможности. Вплоть до ручной посылки при помощи Com port ToolKit например. Как выглядит посылка группой прекрасно вам показал снифер при отправке со стороны ПЛК. Посчитать CRC онлайн калькулятор с Modbus поможет.

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

  8. #58

    По умолчанию

    Цитата Сообщение от Пьер Посмотреть сообщение
    А если некоторые биты из этого списка 0..31 не записываются, это что значит?
    Вам все и не нужны, вам нужны из 32 бит только 12 шт. (0,1,9,14,16,17 и т.д.) Потом дадите им имена и работать будете только с ними.
    Но сначала надо точно выяснить как писать читать биты.

    Провёл эксперимент с 0 битом, отдельно чтение, отдельно запись, отдельно чтение и запись. При запуске сервера отдельная запись выдаёт ошибку, пока не запишешь любое состояние. 1 чтение запись бита.jpg
    После записи любого состояния отдельная запись показывает GOOD 2 чтение запись бита.jpg
    Последний раз редактировалось kondor3000; 09.10.2022 в 13:59.

  9. #59
    Пользователь Аватар для Пьер
    Регистрация
    26.01.2011
    Адрес
    Земля
    Сообщений
    519

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вам все и не нужны, вам нужны из 32 бит только 12 шт. (0,1,9,14,16,17 и т.д.) Потом дадите им имена и работать будете только с ними.
    Но сначала надо точно выяснить как писать читать биты.

    Провёл эксперимент с 0 битом, отдельно чтение, отдельно запись, отдельно чтение и запись. При запуске сервера отдельная запись выдаёт ошибку, пока не запишешь любое состояние. 1 чтение запись бита.jpg
    После записи любого состояния отдельная запись показывает GOOD 2 чтение запись бита.jpg
    Выявил то, что из списка с 0 по 31 бит. Первые 2 байта с 0 по 15 работают только по функции 01 coil и чтение 05, их можно выставлять все вместе теги (это биты 00 01 09 ). Они НЕ работают по функции 02.

    А остальные 2 байта с 24 по 31 байта работают только по фунции 02 (это биты по адресам 0x19 0x1a 0x1d). Если их настроить на 01 coil, тогда ошибка. Регистры с 0 по 03 работают на чтение/запись 03/06.

    При чем включение устройсва регистрами с 0 по 01 соответствует битам с 00 по 01.
    Изображения Изображения
    Не зная броду, не суйся в воду. (Пословица.)
    Век живи, век учись(а умрешь дураком).
    Опыт растет прямо пропорционально выведенному из строя оборудованию.

  10. #60

    По умолчанию

    Это всё хорошо, а где проверка в программе через конфигурацию, со всеми полученными данными?

Страница 6 из 8 ПерваяПервая ... 45678 ПоследняяПоследняя

Ваши права

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