KRModbus.pas
Константы
- MB_QUEUE_MAX_ITEMS – максимальное количество пакетов в очереди на отправку
- MB_ERRORS_COUNT – количество стандартных ошибок протокола Modbus
- MBERR_OK – ошибка отсутствует
- MBERR_ILLEGAL_FUNCTION – недопустимый номер функции
- MBERR_ILLEGAL_DATA_ADDRESS – некорректный адрес устройства
- MBERR_ILLEGAL_DATA_VALUE – некорректное значение в пакете
- MBERR_FAILURE_IN_ASSOCIATED_DEVICE – отказ оборудования удаленного устройства
- MBERR_ACKNOWLEDGE – данные не готовы
- MBERR_BUSY_REJECTED_MESSAGE – система занята
- MBERR_NAK_NEGATIVE_ACKNOWLEDGMENT – отрицательное квитирование
- MBERR_MEMORY_PARITY_ERROR – ошибка четности памяти
- MODBUS_ERRORS_MSG – список сообщений о ошибках
- mbfReadCoils – функция чтение состояния группы дискретных регистров
- mbfReadDiscretInputs – функция чтение состояния группы дискретных входов
- mbfReadHoldingRegisters – функция чтение значения регистров
- mbfReadInputRegisters – функция чтение значения входящих регистров
- mbfWriteCoil – функция записи состояния дискретного регистра
- mbfWriteHoldingRegister – функция записи значения в регистр
- mbfReadStatus – функция запроса статуса устройства
- mbfWriteCoils – функция записи состояния группы дискретных регистров
- mbfWriteHoldingRegisters – функция записи данных в группу регистров
Типы данных
- TModbusError – ошибки Modbus протокола
- TMBFunc – стандартный набор функций протокола Modbus
- TMBType – тип протокола Modbus
- mbtRTU – протокол Modbus RTU
- mbtTCP – протокол Modbus TCP
- mbtASCII – протокол Modbus ASCII
Функции
- MBLRC – расчет контрольной суммы для Modbus ASCII
- ABuffer – буфер, содержащий пакет Modbus ASCII
- ALength – длина пакета
- MBRegsToBYTE – преобразование регистра в тип Byte
- AData – массив регистров
- AHighByteFirst – последовательность байт в славе
- MBRegsToWORD – преобразование регистра в тип Word
- AData – массив регистров
- AHighByteFirst – последовательность байт в славе
- MBRegsToDWORD – преобразование регистра в тип DWORD
- AData – массив регистров
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToSMALLINT – преобразование регистра в тип SmallInt
- AData – массив регистров
- AHighByteFirst – последовательность байт в слове
- MBRegsToINT – преобразование регистра в тип Integer
- AData – массив регистров
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToINT64 – преобразование регистра в тип Int64
- AData – массив регистров
- AHighDWordFirst – последовательность двойных слов
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToUINT64 – преобразование регистра в тип UInt64
- AData – массив регистров
- AHighDWordFirst – последовательность двойных слов
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToSINGLE – преобразование регистра в тип Single
- AData – массив регистров
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToDOUBLE – преобразование регистра в тип Double
- AData – массив регистров
- AHighDWordFirst – последовательность двойных слов
- AHighWordFirst – последовательность слов
- AHighByteFirst – последовательность байт в каждом слове
- MBRegsToSTRING – преобразование регистра в строку
- AData – массив регистров
- AHighByteFirst – последовательность байт
Делаю расфасовщик полученного по ModbusRTU массива переменных. Подскажите пожалуйста, как наиболее удобно скармливать функциям преобразования (таким как MBRegsToSINGLE) массив TKRRegisters начиная не с нулевого элемента.
Прилагаю неработающий код для примера. Компилятор ругается так как функция преобразования требует параметр типа TKRRegisters, а получает Word
Попробуйте так:
это реализация hex to IEEE754 (Dword to Float) ?
Да DWORD в IEEE754
Судя по сообщению об ошибке, ваш компонент(KRField) не имеет имени. Такое обычно получается с дочерними(подкомпонентами). Скорее всего проблема где-то в вашем проекте.