UniSet  1.4.0
Открытые члены | Защищенные члены | Защищенные данные
Класс ModbusClient

#include <ModbusClient.h>

Граф наследования:ModbusClient:
ModbusRTUMaster ModbusTCPMaster

Полный список членов класса

Открытые члены

ModbusRTU::ReadCoilRetMessage read01 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData start, ModbusRTU::ModbusData count) throw (ModbusRTU::mbException)
ModbusRTU::ReadInputStatusRetMessage read02 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData start, ModbusRTU::ModbusData count) throw (ModbusRTU::mbException)
ModbusRTU::ReadOutputRetMessage read03 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData start, ModbusRTU::ModbusData count) throw (ModbusRTU::mbException)
ModbusRTU::ReadInputRetMessage read04 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData start, ModbusRTU::ModbusData count) throw (ModbusRTU::mbException)
ModbusRTU::ForceSingleCoilRetMessage write05 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData reg, bool cmd) throw (ModbusRTU::mbException)
ModbusRTU::WriteSingleOutputRetMessage write06 (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData reg, ModbusRTU::ModbusData data) throw (ModbusRTU::mbException)
ModbusRTU::ForceCoilsRetMessage write0F (ModbusRTU::ForceCoilsMessage &msg) throw (ModbusRTU::mbException)
ModbusRTU::WriteOutputRetMessage write10 (ModbusRTU::WriteOutputMessage &msg) throw (ModbusRTU::mbException)
ModbusRTU::DiagnosticRetMessage diag08 (ModbusRTU::ModbusAddr addr, ModbusRTU::DiagnosticsSubFunction subfunc, ModbusRTU::ModbusData dat=0) throw (ModbusRTU::mbException)
ModbusRTU::SetDateTimeRetMessage setDateTime (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusByte hour, ModbusRTU::ModbusByte min, ModbusRTU::ModbusByte sec, ModbusRTU::ModbusByte day, ModbusRTU::ModbusByte mon, ModbusRTU::ModbusByte year, ModbusRTU::ModbusByte century) throw (ModbusRTU::mbException)
ModbusRTU::FileTransferRetMessage partOfFileTransfer (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile, ModbusRTU::ModbusData numpack, timeout_t part_timeout_msec=2000) throw (ModbusRTU::mbException)
void fileTransfer (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusData idFile, const char *save2filename, timeout_t part_timeout_msec=2000) throw (ModbusRTU::mbException)
void setTimeout (timeout_t msec)
int setAfterSendPause (timeout_t msec)
void setSleepPause (timeout_t usec)
void initLog (UniSetTypes::Configuration *conf, const std::string name, const std::string logfile="")
void setLog (DebugStream &dlog)
void setCRCNoCheckit (bool set)
bool isCRCNoCheckit ()
virtual void cleanupChannel ()

Защищенные члены

virtual int getNextData (unsigned char *buf, int len)=0
virtual void setChannelTimeout (timeout_t msec)=0
virtual ModbusRTU::mbErrCode sendData (unsigned char *buf, int len)=0
virtual ModbusRTU::mbErrCode query (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusMessage &msg, ModbusRTU::ModbusMessage &reply, timeout_t timeout)=0
virtual ModbusRTU::mbErrCode send (ModbusRTU::ModbusMessage &msg)
virtual ModbusRTU::mbErrCode recv (ModbusRTU::ModbusAddr addr, ModbusRTU::ModbusByte qfunc, ModbusRTU::ModbusMessage &rbuf, timeout_t timeout)
virtual ModbusRTU::mbErrCode recv_pdu (ModbusRTU::ModbusByte qfunc, ModbusRTU::ModbusMessage &rbuf, timeout_t timeout)
void printProcessingTime ()

Защищенные данные

ModbusRTU::ModbusMessage reply
ModbusRTU::ModbusMessage qbuf
timeout_t replyTimeOut_ms
timeout_t aftersend_msec
timeout_t sleepPause_usec
bool crcNoCheckit
UniSetTypes::uniset_mutex sendMutex
DebugStream dlog
PassiveTimer tmProcessing

Подробное описание

Modbus client (master) interface


Методы

DiagnosticRetMessage ModbusClient::diag08 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::DiagnosticsSubFunction  subfunc,
ModbusRTU::ModbusData  dat = 0 
) throw (ModbusRTU::mbException)

Диагностика (0x08)

Перекрестные ссылки ModbusRTU::ModbusHeader::addr и ModbusRTU::DiagnosticMessage::transport_msg().

void ModbusClient::fileTransfer ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  idFile,
const char *  save2filename,
timeout_t  part_timeout_msec = 2000 
) throw (ModbusRTU::mbException)

Загрузить файл

Аргументы:
idFile- идентификатор файла
save2filename- имя файла, под которым будет сохранён полученный файл
part_timeout_msec- таймаут на получение очередной части файла.

Перекрестные ссылки PassiveTimer::checkTime(), DebugStream::debugging(), ModbusRTU::FileTransferRetMessage::dlen, ModbusRTU::FileTransferRetMessage::numfile, ModbusRTU::FileTransferRetMessage::numpacks, ModbusRTU::FileTransferRetMessage::packet и PassiveTimer::reset().

virtual int ModbusClient::getNextData ( unsigned char *  buf,
int  len 
) [protected, pure virtual]

get next data block from channel ot recv buffer

Аргументы:
begin- get from position
buf- buffer for data
len- size of buf
Возвращает:
real data lenght ( must be <= len )

Замещается в ModbusRTUMaster и ModbusTCPMaster.

FileTransferRetMessage ModbusClient::partOfFileTransfer ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  idFile,
ModbusRTU::ModbusData  numpack,
timeout_t  part_timeout_msec = 2000 
) throw (ModbusRTU::mbException)

Загрузить файл (0x66)

Аргументы:
idFile- идентификатор файла
numpack- номер очередного запрашиваемого пакета
save2filename- имя файла, под которым будет сохранён полученный файл
part_timeout_msec- таймаут на получение очередной части файла.

Перекрестные ссылки ModbusRTU::FileTransferMessage::transport_msg().

virtual ModbusRTU::mbErrCode ModbusClient::query ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusMessage msg,
ModbusRTU::ModbusMessage reply,
timeout_t  timeout 
) [protected, pure virtual]

функция запрос-ответ

Замещается в ModbusRTUMaster и ModbusTCPMaster.

ReadCoilRetMessage ModbusClient::read01 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  start,
ModbusRTU::ModbusData  count 
) throw (ModbusRTU::mbException)

Чтение группы регистров (0x01)

Аргументы:
addr- адрес slave-узла
start- начальный регистр с которого читать
count- сколько регистров читать

Перекрестные ссылки ModbusRTU::ReadCoilMessage::transport_msg().

ReadInputStatusRetMessage ModbusClient::read02 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  start,
ModbusRTU::ModbusData  count 
) throw (ModbusRTU::mbException)

Чтение группы регистров (0x02)

Аргументы:
addr- адрес slave-узла
start- начальный регистр с которого читать
count- сколько регистров читать

Перекрестные ссылки ModbusRTU::ReadInputStatusMessage::transport_msg().

ReadOutputRetMessage ModbusClient::read03 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  start,
ModbusRTU::ModbusData  count 
) throw (ModbusRTU::mbException)

Чтение группы регистров (0x03)

Аргументы:
addr- адрес slave-узла
start- начальный регистр с которого читать
count- сколько регистров читать

Перекрестные ссылки ModbusRTU::ReadOutputMessage::transport_msg().

ReadInputRetMessage ModbusClient::read04 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  start,
ModbusRTU::ModbusData  count 
) throw (ModbusRTU::mbException)

Чтение группы регистров (0x04)

Аргументы:
addr- адрес slave-узла
start- начальный регистр с которого читать
count- сколько регистров читать

Перекрестные ссылки ModbusRTU::ReadInputMessage::transport_msg().

mbErrCode ModbusClient::recv ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusByte  qfunc,
ModbusRTU::ModbusMessage rbuf,
timeout_t  timeout 
) [protected, virtual]

обработка ответа

Необходимо сделать:
Подумать Может стоит всё-таки получать весь пакет, а проверять кому он адресован на уровне выше?! Lav: конечно стоит, нам же надо буфер чистить

Перекрестные ссылки ModbusRTU::ModbusHeader::addr, PassiveTimer::checkTime() и UniSetTimer::WaitUpTime.

Используется в ModbusTCPMaster::query().

mbErrCode ModbusClient::send ( ModbusRTU::ModbusMessage msg) [protected, virtual]

посылка запроса

Перекрестные ссылки DebugStream::debugging(), ModbusRTU::ModbusMessage::len и msleep().

Используется в ModbusTCPMaster::query().

int ModbusClient::setAfterSendPause ( timeout_t  msec)

Установка паузы после посылки запроса

Возвращает:
старое значение
virtual void ModbusClient::setChannelTimeout ( timeout_t  msec) [protected, pure virtual]

set timeout for send/receive data

Замещается в ModbusRTUMaster и ModbusTCPMaster.

SetDateTimeRetMessage ModbusClient::setDateTime ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusByte  hour,
ModbusRTU::ModbusByte  min,
ModbusRTU::ModbusByte  sec,
ModbusRTU::ModbusByte  day,
ModbusRTU::ModbusByte  mon,
ModbusRTU::ModbusByte  year,
ModbusRTU::ModbusByte  century 
) throw (ModbusRTU::mbException)

Установить системное время (0x50) hour - часы [0..23] min - минуты [0..59] sec - секунды [0..59] day - день [1..31] mon - месяц [1..12] year - год [0..99] century - столетие [19-20]

Перекрестные ссылки ModbusRTU::SetDateTimeMessage::century, ModbusRTU::SetDateTimeMessage::day, ModbusRTU::SetDateTimeMessage::hour, ModbusRTU::SetDateTimeMessage::min, ModbusRTU::SetDateTimeMessage::mon, ModbusRTU::SetDateTimeMessage::sec, ModbusRTU::SetDateTimeMessage::transport_msg() и ModbusRTU::SetDateTimeMessage::year.

void ModbusClient::setSleepPause ( timeout_t  usec) [inline]

установить паузу при ожидании символа

Перекрестные ссылки sleepPause_usec.

void ModbusClient::setTimeout ( timeout_t  msec)

установить время ожидания по умолчанию

Перекрестные ссылки UniSetTimer::WaitUpTime.

ForceSingleCoilRetMessage ModbusClient::write05 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  reg,
bool  cmd 
) throw (ModbusRTU::mbException)

0x05

Аргументы:
addr- адрес slave-узла
reg- записываемый регистр
cmd- команда ON | OFF

Перекрестные ссылки ModbusRTU::ForceSingleCoilMessage::transport_msg().

WriteSingleOutputRetMessage ModbusClient::write06 ( ModbusRTU::ModbusAddr  addr,
ModbusRTU::ModbusData  reg,
ModbusRTU::ModbusData  data 
) throw (ModbusRTU::mbException)

Запись одного регистра (0x06)

Аргументы:
addr- адрес slave-узла
reg- записываемый регистр
data- данные

Перекрестные ссылки ModbusRTU::WriteSingleOutputMessage::transport_msg().

Запись группы выходов (0x0F)

Перекрестные ссылки ModbusRTU::ForceCoilsRetMessage::transport_msg().

Запись группы регистров (0x10)

Перекрестные ссылки ModbusRTU::WriteOutputRetMessage::transport_msg().


Данные класса

timeout_t ModbusClient::aftersend_msec [protected]

пауза после посылки запроса

буфер для посылки сообщений

буфер для приёма сообщений

timeout_t ModbusClient::replyTimeOut_ms [protected]

таймаут на ожидание ответа

timeout_t ModbusClient::sleepPause_usec [protected]

пауза между попытками чтения символа из канала

Используется в setSleepPause().


Объявления и описания членов классов находятся в файлах: