Показано с 1 по 2 из 2

Тема: запись данных функция 0х10

  1. #1

    По умолчанию запись данных функция 0х10

    Помогите разобраться, у меня панель СП-307 реализую функцию записи 0х10


    void MY_16WRITE(BYTE DevAdr, WORD RegAdr, WORD Mask, WORD Error)
    {
    BYTE DataReceive[12]; // sending modbus frame
    BYTE DataSend[11]; // receiving modbus frame

    DataSend[0]=DevAdr; // Slave ID (network address of Slave device)
    DataSend[1]=0x10; // function code (0x10 - Write Multiple Registers)
    DataSend[2]=HIBYTE(RegAdr); // register address (RegAdr)
    DataSend[3]=LOBYTE(RegAdr);
    DataSend[4]=0x00; // bytes 4-5 - quantity of written registers
    DataSend[5]=0x01;
    DataSend[6]=0x02; // quantity of sending bytes
    DataSend[7]=HIBYTE(Mask); // written variable (Mask)
    DataSend[8]=LOBYTE(Mask);
    DataSend[9]=HIBYTE(Crc(DataSend,9)); // CRC
    DataSend[10]=LOBYTE(Crc(DataSend,9));

    Enter(PLC); // catch PLC-port
    Send(PLC,DataSend,10); // send 11 bytes from DataSend array
    Receive(PLC,DataReceive,8,1000,6); // receive 8 bytes with timeout 1000 ms


    Leave(PLC); // leave PLC-port
    Delay(10); // delay 100 ms




    if (DataReceive[1]!=0x10) // if message from slave have error code...

    PSW[500] = 0xcc; else PSW[500] = 0xaa;



    //PSW[500] = DataReceive[0];
    PSW[501] = MAKEWORD(DataReceive[1],DataReceive[2]);
    PSW[502] = DataReceive[2];
    PSW[503] = DataReceive[3];
    PSW[504] = DataReceive[4];
    PSW[505] = DataReceive[5];
    PSW[506] = DataReceive[6];
    PSW[507] = DataReceive[7];
    PSW[508] = DataReceive[8];
    PSW[509] = DataReceive[9];
    PSW[510] = DataReceive[10];
    PSW[511] = DataReceive[11];
    }

    код, вроде как рабочий. я его уже применял

    а сейчас нужно убедиться, что устройство отвечает на данный запрос.

    Пытаюсь принять ответную посылку по модбасу, на ничего не приходит.

    Что делаю не так?

    Устройство подключено, порт РLC, читаю из этого устройства 3 и 4 функцией успешно

  2. #2

    По умолчанию

    Добрый день, подскажите что подается в качестве аргумента "WORD Mask" ?

Похожие темы

  1. Чтение/запись данных по сети
    от Атаман в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 18.12.2016, 06:57
  2. Запись данных ПЛК 73
    от Вараксин Роман в разделе ПЛК63/73
    Ответов: 5
    Последнее сообщение: 24.10.2015, 13:31
  3. Запись данных в БД
    от Sohatyi в разделе Master SCADA 3
    Ответов: 25
    Последнее сообщение: 17.05.2013, 14:18
  4. Запись данных с ТРМ-138 на ПК
    от kelevra40 в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 13.02.2012, 15:40
  5. Энкодер, запись данных
    от lunyov_i в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 21.12.2009, 09:00

Ваши права

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