![]() |
AUBO SDK
0.25.0
|
通用寄存器 更多...
#include <register_control.h>
Public 成员函数 | |
RegisterControl () | |
virtual | ~RegisterControl () |
bool | getBoolInput (uint32_t address) |
从一个输入寄存器中读取布尔值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setBoolInput (uint32_t address, bool value) |
int | getInt32Input (uint32_t address) |
从一个输入寄存器中读取整数值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setInt32Input (uint32_t address, int value) |
float | getFloatInput (uint32_t address) |
Reads the float from one of the input registers, which can also be accessed by a Field bus. | |
int | setFloatInput (uint32_t address, float value) |
double | getDoubleInput (uint32_t address) |
从一个输入寄存器中读取双精度浮点数,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setDoubleInput (uint32_t address, double value) |
bool | getBoolOutput (uint32_t address) |
从一个输出寄存器中读取布尔值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setBoolOutput (uint32_t address, bool value) |
int | getInt32Output (uint32_t address) |
从一个输出寄存器中读取整数值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setInt32Output (uint32_t address, int value) |
float | getFloatOutput (uint32_t address) |
从一个输出寄存器中读取浮点数,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。 | |
int | setFloatOutput (uint32_t address, float value) |
double | getDoubleOutput (uint32_t address) |
从一个输出寄存器中读取双精度浮点数。 | |
int | setDoubleOutput (uint32_t address, double value) |
int16_t | getInt16Register (uint32_t address) |
用于 Modbus Slave | |
int | setInt16Register (uint32_t address, int16_t value) |
bool | hasNamedVariable (const std::string &key) |
具名变量是否存在 | |
std::string | getNamedVariableType (const std::string &key) |
获取具名变量的类型 | |
bool | variableUpdated (const std::string &key, uint64_t since) |
具名变量是否更新 | |
bool | getBool (const std::string &key, bool default_value) |
获取变量值 | |
int | setBool (const std::string &key, bool value) |
设置/更新变量值 | |
std::vector< char > | getVecChar (const std::string &key, const std::vector< char > &default_value) |
获取变量值 | |
int | setVecChar (const std::string &key, const std::vector< char > &value) |
设置/更新变量值 | |
int | getInt32 (const std::string &key, int default_value) |
获取变量值 | |
int | setInt32 (const std::string &key, int value) |
设置/更新变量值 | |
std::vector< int32_t > | getVecInt32 (const std::string &key, const std::vector< int32_t > &default_value) |
获取变量值 | |
int | setVecInt32 (const std::string &key, const std::vector< int32_t > &value) |
设置/更新变量值 | |
float | getFloat (const std::string &key, float default_value) |
获取变量值 | |
int | setFloat (const std::string &key, float value) |
设置/更新变量值 | |
std::vector< float > | getVecFloat (const std::string &key, const std::vector< float > &default_value) |
获取变量值 | |
int | setVecFloat (const std::string &key, const std::vector< float > &value) |
设置/更新变量值 | |
double | getDouble (const std::string &key, double default_value) |
获取变量值 | |
int | setDouble (const std::string &key, double value) |
设置/更新变量值 | |
std::vector< double > | getVecDouble (const std::string &key, const std::vector< double > &default_value) |
获取变量值 | |
int | setVecDouble (const std::string &key, const std::vector< double > &value) |
设置/更新变量值 | |
std::string | getString (const std::string &key, const std::string &default_value) |
获取变量值 | |
int | setString (const std::string &key, const std::string &value) |
设置/更新变量值 | |
int | clearNamedVariable (const std::string &key) |
清除变量 | |
int | setWatchDog (const std::string &key, double timeout, int action) |
设置看门狗 | |
int | getWatchDogAction (const std::string &key) |
获取看门狗动作 | |
int | getWatchDogTimeout (const std::string &key) |
获取看门狗超时时间 | |
int | modbusAddSignal (const std::string &device_info, int slave_number, int signal_address, int signal_type, const std::string &signal_name, bool sequential_mode) |
添加一个新的Modbus信号以供控制器监视。不需要返回响应。 | |
int | modbusDeleteSignal (const std::string &signal_name) |
删除指定名称的信号。 | |
int | modbusDeleteAllSignals () |
删除所有modbus信号 | |
int | modbusGetSignalStatus (const std::string &signal_name) |
读取特定信号的当前值。 | |
std::vector< std::string > | modbusGetSignalNames () |
获取所有信号的名字集合 | |
std::vector< int > | modbusGetSignalTypes () |
获取所有信号的类型集合 | |
std::vector< int > | modbusGetSignalValues () |
获取所有信号的数值集合 | |
std::vector< int > | modbusGetSignalErrors () |
获取所有信号的请求是否有错误(0:无错误,其他:有错误)集合 | |
int | modbusSendCustomCommand (const std::string &device_info, int slave_number, int function_code, const std::vector< uint8_t > &data) |
将用户指定的命令发送到指定IP地址上的Modbus单元。 由于不会接收到响应,因此不能用于请求数据。 用户负责提供对所提供的功能码有意义的数据。 内置函数负责构建Modbus帧,因此用户不需要关心命令的长度。 | |
int | modbusSetDigitalInputAction (const std::string &robot_name, const std::string &signal_name, StandardInputAction action) |
将选择的数字输入信号设置为“default”或“freedrive” | |
int | modbusSetOutputRunstate (const std::string &robot_name, const std::string &signal_name, StandardOutputRunState runstate) |
设置 Modbus 信号输出动作 | |
int | modbusSetOutputSignal (const std::string &signal_name, uint16_t value) |
将指定名称的输出寄存器信号设置为给定的值 | |
int | modbusSetOutputSignalPulse (const std::string &signal_name, uint16_t value, double duration) |
设置modbus信号输出脉冲(仅支持线圈输出类型) | |
int | modbusSetSignalUpdateFrequency (const std::string &signal_name, int update_frequency) |
设置机器人向Modbus控制器发送请求的频率,用于读取或写入信号值 | |
int | modbusGetSignalIndex (const std::string &signal_name) |
获取指定 modbus 信号索引,从0开始,不能存在则返回-1 | |
int | modbusGetSignalError (const std::string &signal_name) |
获取指定 modbus 信号的错误状态 | |
int | getModbusDeviceStatus (const std::string &device_name) |
获取指定 modbus 设备的连接状态 | |
int | addModbusEncoder (int encoder_id, int range_id, const std::string &signal_name) |
将某个 modbus 寄存器信号作为编码器 | |
int | addInt32RegEncoder (int encoder_id, int range_id, const std::string &key) |
添加Int32寄存器的虚拟编码器 | |
int | deleteVirtualEncoder (int encoder_id) |
删除虚拟编码器 | |
Protected 属性 | |
void * | d_ |
通用寄存器
在文件 register_control.h 第 63 行定义.
arcs::common_interface::RegisterControl::RegisterControl | ( | ) |
|
virtual |
int arcs::common_interface::RegisterControl::addInt32RegEncoder | ( | int | encoder_id, |
int | range_id, | ||
const std::string & | key | ||
) |
添加Int32寄存器的虚拟编码器
encoder_id | 编码器ID |
range_id | 范围ID |
key | 变量名 |
int arcs::common_interface::RegisterControl::addModbusEncoder | ( | int | encoder_id, |
int | range_id, | ||
const std::string & | signal_name | ||
) |
将某个 modbus 寄存器信号作为编码器
encoder_id | 不能为0 |
signal_name | modbus 信号名字,必须为寄存器类型 |
int arcs::common_interface::RegisterControl::clearNamedVariable | ( | const std::string & | key | ) |
清除变量
key |
int arcs::common_interface::RegisterControl::deleteVirtualEncoder | ( | int | encoder_id | ) |
删除虚拟编码器
encoder_id |
bool arcs::common_interface::RegisterControl::getBool | ( | const std::string & | key, |
bool | default_value | ||
) |
获取变量值
key | |
default_value |
bool arcs::common_interface::RegisterControl::getBoolInput | ( | uint32_t | address | ) |
从一个输入寄存器中读取布尔值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器的地址(0:127) |
bool arcs::common_interface::RegisterControl::getBoolOutput | ( | uint32_t | address | ) |
从一个输出寄存器中读取布尔值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器地址(0:127) |
double arcs::common_interface::RegisterControl::getDouble | ( | const std::string & | key, |
double | default_value | ||
) |
获取变量值
key | |
default_value |
double arcs::common_interface::RegisterControl::getDoubleInput | ( | uint32_t | address | ) |
从一个输入寄存器中读取双精度浮点数,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器的地址(0:47) |
double arcs::common_interface::RegisterControl::getDoubleOutput | ( | uint32_t | address | ) |
从一个输出寄存器中读取双精度浮点数。
address | 寄存器地址 |
float arcs::common_interface::RegisterControl::getFloat | ( | const std::string & | key, |
float | default_value | ||
) |
获取变量值
key | |
default_value |
float arcs::common_interface::RegisterControl::getFloatInput | ( | uint32_t | address | ) |
Reads the float from one of the input registers, which can also be accessed by a Field bus.
Note, uses it’s own memory space.
从一个输入寄存器中读取浮点数,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | Address of the register (0:47) 寄存器地址(0:47) |
float arcs::common_interface::RegisterControl::getFloatOutput | ( | uint32_t | address | ) |
从一个输出寄存器中读取浮点数,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器地址(0:47) |
int16_t arcs::common_interface::RegisterControl::getInt16Register | ( | uint32_t | address | ) |
用于 Modbus Slave
address |
int arcs::common_interface::RegisterControl::getInt32 | ( | const std::string & | key, |
int | default_value | ||
) |
获取变量值
key | |
default_value |
int arcs::common_interface::RegisterControl::getInt32Input | ( | uint32_t | address | ) |
从一个输入寄存器中读取整数值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器的地址(0:47) |
int arcs::common_interface::RegisterControl::getInt32Output | ( | uint32_t | address | ) |
从一个输出寄存器中读取整数值,也可以通过现场总线进行访问。 注意,它使用自己的内存空间。
address | 寄存器地址(0:47) |
int arcs::common_interface::RegisterControl::getModbusDeviceStatus | ( | const std::string & | device_name | ) |
获取指定 modbus 设备的连接状态
device_name | 设备名是TCP格式,"ip:port", 例如:"127.0.0.1:502" 设备名是RTU格式,"serial_port", 例如:"/dev/ttyUSB0" |
std::string arcs::common_interface::RegisterControl::getNamedVariableType | ( | const std::string & | key | ) |
获取具名变量的类型
key |
std::string arcs::common_interface::RegisterControl::getString | ( | const std::string & | key, |
const std::string & | default_value | ||
) |
获取变量值
key | |
default_value |
std::vector< char > arcs::common_interface::RegisterControl::getVecChar | ( | const std::string & | key, |
const std::vector< char > & | default_value | ||
) |
获取变量值
key | |
default_value |
std::vector< double > arcs::common_interface::RegisterControl::getVecDouble | ( | const std::string & | key, |
const std::vector< double > & | default_value | ||
) |
获取变量值
key | |
default_value |
std::vector< float > arcs::common_interface::RegisterControl::getVecFloat | ( | const std::string & | key, |
const std::vector< float > & | default_value | ||
) |
获取变量值
key | |
default_value |
std::vector< int32_t > arcs::common_interface::RegisterControl::getVecInt32 | ( | const std::string & | key, |
const std::vector< int32_t > & | default_value | ||
) |
获取变量值
key | |
default_value |
int arcs::common_interface::RegisterControl::getWatchDogAction | ( | const std::string & | key | ) |
获取看门狗动作
key |
int arcs::common_interface::RegisterControl::getWatchDogTimeout | ( | const std::string & | key | ) |
获取看门狗超时时间
key |
bool arcs::common_interface::RegisterControl::hasNamedVariable | ( | const std::string & | key | ) |
具名变量是否存在
key | 变量名 |
int arcs::common_interface::RegisterControl::modbusAddSignal | ( | const std::string & | device_info, |
int | slave_number, | ||
int | signal_address, | ||
int | signal_type, | ||
const std::string & | signal_name, | ||
bool | sequential_mode | ||
) |
添加一个新的Modbus信号以供控制器监视。不需要返回响应。
device_info | 设备信息 设备信息是RTU格式,例如:"serial_port,baud,parity,data_bit,stop_bit" (1)serial_port参数指定串口的名称,例如,在Linux上为"/dev/ttyS0"或"/dev/ttyUSB0",在Windows上为"\.\COM10" (2)baud参数指定通信的波特率,例如9600、19200、57600、115200等 (3)parity参数指定奇偶校验方式,N表示无校验,E表示偶校验,O表示奇校验 (4)data_bit参数指定数据位数,允许的值为5、6、7和8 (5)stop_bit参数指定停止位数,允许的值为1和2 |
设备信息是TCP格式,例如:"ip address,port" (1)ip address参数指定服务器的IP地址 (2)port参数指定服务器监听的端口号
slave_number | 通常不使用,设置为255即可,但可以在0到255之间自由选择 |
signal_address | 指定新信号应该反映的线圈或寄存器的地址。请参考Modbus单元的配置以获取此信息。 |
signal_type | 指定要添加的信号类型。0 = 数字输入,1 = 数字输出,2 = 寄存器输入,3 = 寄存器输出。 |
signal_name | 唯一标识信号的名词。如果提供的字符串与已添加的信号相等,则新信号将替换旧信号。字符串的长度不能超过20个字符。 |
sequential_mode | 设置为True会强制Modbus客户端在发送下一个请求之前等待响应。某些fieldbus单元需要此模式。可选参数。 |
int arcs::common_interface::RegisterControl::modbusDeleteAllSignals | ( | ) |
删除所有modbus信号
int arcs::common_interface::RegisterControl::modbusDeleteSignal | ( | const std::string & | signal_name | ) |
删除指定名称的信号。
signal_name | 要删除的信号的名称 |
int arcs::common_interface::RegisterControl::modbusGetSignalError | ( | const std::string & | signal_name | ) |
获取指定 modbus 信号的错误状态
signal_name |
std::vector< int > arcs::common_interface::RegisterControl::modbusGetSignalErrors | ( | ) |
获取所有信号的请求是否有错误(0:无错误,其他:有错误)集合
int arcs::common_interface::RegisterControl::modbusGetSignalIndex | ( | const std::string & | signal_name | ) |
获取指定 modbus 信号索引,从0开始,不能存在则返回-1
signal_name |
std::vector< std::string > arcs::common_interface::RegisterControl::modbusGetSignalNames | ( | ) |
获取所有信号的名字集合
int arcs::common_interface::RegisterControl::modbusGetSignalStatus | ( | const std::string & | signal_name | ) |
读取特定信号的当前值。
signal_name | 要获取值的信号的名称 |
std::vector< int > arcs::common_interface::RegisterControl::modbusGetSignalTypes | ( | ) |
获取所有信号的类型集合
std::vector< int > arcs::common_interface::RegisterControl::modbusGetSignalValues | ( | ) |
获取所有信号的数值集合
int arcs::common_interface::RegisterControl::modbusSendCustomCommand | ( | const std::string & | device_info, |
int | slave_number, | ||
int | function_code, | ||
const std::vector< uint8_t > & | data | ||
) |
将用户指定的命令发送到指定IP地址上的Modbus单元。 由于不会接收到响应,因此不能用于请求数据。 用户负责提供对所提供的功能码有意义的数据。 内置函数负责构建Modbus帧,因此用户不需要关心命令的长度。
device_info | 设备信息 设备信息是RTU格式,例如:"serial_port,baud,parity,data_bit,stop_bit" (1)serial_port参数指定串口的名称,例如,在Linux上为"/dev/ttyS0"或"/dev/ttyUSB0",在Windows上为"\.\COM10" (2)baud参数指定通信的波特率,例如9600、19200、57600、115200等 (3)parity参数指定奇偶校验方式,N表示无校验,E表示偶校验,O表示奇校验 (4)data_bit参数指定数据位数,允许的值为5、6、7和8 (5)stop_bit参数指定停止位数,允许的值为1和2 |
设备信息是TCP格式,例如:"ip address,port" (1)ip address参数指定服务器的IP地址 (2)port参数指定服务器监听的端口号
slave_number | 指定用于自定义命令的从站号 |
function_code | 指定自定义命令的功能码 |
Modbus功能码 MODBUS_FC_READ_COILS 0x01 MODBUS_FC_READ_DISCRETE_INPUTS 0x02 MODBUS_FC_READ_HOLDING_REGISTERS 0x03 MODBUS_FC_READ_INPUT_REGISTERS 0x04 MODBUS_FC_WRITE_SINGLE_COIL 0x05 MODBUS_FC_WRITE_SINGLE_REGISTER 0x06 MODBUS_FC_READ_EXCEPTION_STATUS 0x07 MODBUS_FC_WRITE_MULTIPLE_COILS 0x0F MODBUS_FC_WRITE_MULTIPLE_REGISTERS 0x10 MODBUS_FC_REPORT_SLAVE_ID 0x11 MODBUS_FC_MASK_WRITE_REGISTER 0x16 MODBUS_FC_WRITE_AND_READ_REGISTERS 0x17
data | 必须是有效的字节值(0-255) |
int arcs::common_interface::RegisterControl::modbusSetDigitalInputAction | ( | const std::string & | robot_name, |
const std::string & | signal_name, | ||
StandardInputAction | action | ||
) |
将选择的数字输入信号设置为“default”或“freedrive”
robot_name | 连接的机器人名称 |
signal_name | 先前被添加的数字输入信号 |
action | 操作类型。操作可以是“default”或“freedrive” |
int arcs::common_interface::RegisterControl::modbusSetOutputRunstate | ( | const std::string & | robot_name, |
const std::string & | signal_name, | ||
StandardOutputRunState | runstate | ||
) |
设置 Modbus 信号输出动作
robot_name | |
signal_name | |
runstate |
int arcs::common_interface::RegisterControl::modbusSetOutputSignal | ( | const std::string & | signal_name, |
uint16_t | value | ||
) |
将指定名称的输出寄存器信号设置为给定的值
signal_name | 提前被添加的输出寄存器信号 |
value | 必须是有效的整数,范围是 0-65535 |
int arcs::common_interface::RegisterControl::modbusSetOutputSignalPulse | ( | const std::string & | signal_name, |
uint16_t | value, | ||
double | duration | ||
) |
设置modbus信号输出脉冲(仅支持线圈输出类型)
signal_name | 提前被添加的输出寄存器信号 |
value | 必须是有效的整数,范围是 0-65535 |
duration | 信号持续时间,单位为秒 |
int arcs::common_interface::RegisterControl::modbusSetSignalUpdateFrequency | ( | const std::string & | signal_name, |
int | update_frequency | ||
) |
设置机器人向Modbus控制器发送请求的频率,用于读取或写入信号值
signal_name | 提前被添加的输出数字信号 |
update_frequency | 更新频率(以赫兹为单位),范围是0-125 |
int arcs::common_interface::RegisterControl::setBool | ( | const std::string & | key, |
bool | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setBoolInput | ( | uint32_t | address, |
bool | value | ||
) |
address | |
value |
int arcs::common_interface::RegisterControl::setBoolOutput | ( | uint32_t | address, |
bool | value | ||
) |
address | 寄存器地址(0:127) |
value | 要设置的布尔值(true 或 false) |
int arcs::common_interface::RegisterControl::setDouble | ( | const std::string & | key, |
double | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setDoubleInput | ( | uint32_t | address, |
double | value | ||
) |
address | |
value |
int arcs::common_interface::RegisterControl::setDoubleOutput | ( | uint32_t | address, |
double | value | ||
) |
address | 寄存器地址 |
value | 要设置的双精度浮点数值 |
int arcs::common_interface::RegisterControl::setFloat | ( | const std::string & | key, |
float | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setFloatInput | ( | uint32_t | address, |
float | value | ||
) |
address | 寄存器的地址(0:47) |
value | 要设置的浮点数值 |
int arcs::common_interface::RegisterControl::setFloatOutput | ( | uint32_t | address, |
float | value | ||
) |
address | 寄存器地址(0:47) |
value | 要设置的浮点数值 |
int arcs::common_interface::RegisterControl::setInt16Register | ( | uint32_t | address, |
int16_t | value | ||
) |
address | 寄存器地址 |
value | 要设置的值 |
int arcs::common_interface::RegisterControl::setInt32 | ( | const std::string & | key, |
int | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setInt32Input | ( | uint32_t | address, |
int | value | ||
) |
address | 寄存器的地址(0:47) |
value | 要设置的整数值 |
int arcs::common_interface::RegisterControl::setInt32Output | ( | uint32_t | address, |
int | value | ||
) |
address | 寄存器地址(0:47) |
value | 要设置的整数值 |
int arcs::common_interface::RegisterControl::setString | ( | const std::string & | key, |
const std::string & | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setVecChar | ( | const std::string & | key, |
const std::vector< char > & | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setVecDouble | ( | const std::string & | key, |
const std::vector< double > & | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setVecFloat | ( | const std::string & | key, |
const std::vector< float > & | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setVecInt32 | ( | const std::string & | key, |
const std::vector< int32_t > & | value | ||
) |
设置/更新变量值
key | |
value |
int arcs::common_interface::RegisterControl::setWatchDog | ( | const std::string & | key, |
double | timeout, | ||
int | action | ||
) |
设置看门狗
看门狗被触发之后控制器会执行对应的动作,并自动删除看门狗
key | |
timeout | 超时时间,单位秒(s),超时时间最小为 0.1s |
action | NONE (0): 无动作 PAUSE(1): 暂停运行时 STOP (2): 停止运行时/停止机器人运动 PROTECTIVE_STOP (3): 触发防护停止 |
bool arcs::common_interface::RegisterControl::variableUpdated | ( | const std::string & | key, |
uint64_t | since | ||
) |
具名变量是否更新
key | |
since |
|
protected |
在文件 register_control.h 第 2719 行定义.