...
注意点
- 设备断开后,驱动要能够自动重连
- 设备断开后,驱动要能更新设备连接状态,质量设为0,连接成功则设置为1,Drv_SetConnStatus
驱动配置
内置驱动,不需要增加和配置。
设备配置
在驱动fanucfocasdrv下增加一个设备,如fanuc1
...
变量地址 | 变量名称 | 更新周期(ms) | 控制使能 | 数据类型 | 值的意义 | 备注 | |
---|---|---|---|---|---|---|---|
device_alarm | 设备报警状态 | 3000 | 否 | boolchar | 0:无报警 1:有报警 其他如*-1:连不上等故障 | ||
device_emergency | 设备紧停状态 | 3000 | 否 | boolchar | 0:不在紧急停机状态非紧急情况 1:处于紧急停机状态紧急情况 其他如*-1:连不上等故障 | ||
device_run | 设备运行状态 | 3000 | 否 | boolshort | 0:不在运行停止 1:在运行状态开始 其他如*-1:连不上等故障 | ||
device_aut | 设备自动模式 | 3000 | 否 | boolshort | 0:手工运行模式没有选择 1:自动运行模式选择自动 其他如*-1:连不上等故障 | ||
batch_num | 工件数量 | 3000 | 否 | int32uint32 | 整数值,>=0 其他如*-1:连不上等故障 | ||
main_prog_namenum | 主程序号 | 3000 | 否 | int32string | 整数值,>=0 其他如*-1:连不上等故障 | ||
cur_prog_namenum | 当前运行程序号 | 3000 | 否 | int32uint32 | 整数值,>=0 其他如*-1:连不上等故障 | ||
speed_override | 主轴倍率 | 3000 | 否 | float | 小数值,>=0 其他如*-1:连不上等故障 | ||
feed_override | 进给倍率 | 3000 | 否 | float | 小数值,>=0 其他如*-1:连不上等故障 | ||
act_spspeed | 主轴实际转速 | 3000 | 否 | int32float | 整数值小数值,>=0 其他如*-1:连不上等故障 | ||
act_feedrate | 进给实际转速 | 3000 | 否 | int32float | 整数值小数值,>=0 其他如*-1:连不上等故障 | ||
set_spspeed | 主轴设定速度 | 3000 | 否 | int32float | 整数值小数值,>=0 其他如*-1:连不上等故障 | ||
set_feedrate | 进给设定速度 | 3000 | 否 | int32float | 整数值小数值,>=0 其他如*-1:连不上等故障 | ||
tool_number | 当前刀具号 | 3000 | 否 | int32string | 字符串 其他如*-1:连不上等故障 | ||
tool_offset | 当前刀补号 | 3000 | 否 | int32 | uint32 | 整数值,>=0字符串 其他如*-1:连不上等故障 | |
spload | 主轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
spload2 | 主轴负载2 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
servoloadx | 伺服x轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
servoloady | 伺服y轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
servoloadz | 伺服z轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*:连不上等故障 | ||
servoloadB | 伺服B轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
servoloadC | 伺服C轴负载 | 3000 | 否 | float | 小数小数值,>=0 其他如*-1:连不上等故障 | ||
g_state | G代码状态G代码 | 3000 | 否 | boolchar | 0:??? 1:??? 其他如*-1:连不上等故障 | 成功完成时返回EW_OK,否则返回除EW_OK以外的任何值。 | |
cyctime | 加工循环时间 | 3000 | 否 | int32uint32 | 整数,单位:秒?毫秒 其他如*-1:连不上等故障 | ||
servo_temp | 伺服温度 | 3000 | 否 | float | 小数,>=0 其他如*-1:连不上等故障 | ||
sp_temp | 主轴温度 | 3000 | 否 | float | 小数,>=0 其他如*-1:连不上等故障 | ||
abspos_x | x轴绝对坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*-1:连不上等故障 | |
abspos_y | y轴绝对坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*-1:连不上等故障 | |
abspos_z | z轴绝对坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*-1:连不上等故障 | |
rest_pos_x | x轴机械坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*-1:连不上等故障 | |
rest_pos_y | y轴机械坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*-1:连不上等故障 | |
rest_pos_z | z轴机械坐标 | 3000 | 否 | int32 | float | 小数,>=0整数 其他如*:连不上等故障 | |
cur_prog_text | 当前运行程序文本 | 10000 | 否 | string,长度4096 | 字符串,程序文本 其他如*:连接不上-1:连接不上等故障 | ||
emergency_stop | 紧急停机控制停机 | 1000 | 是 | boolchar | 0:未紧急停机未停机 1:已紧急停机停机 其他如*-1:连不上等故障 | 设备紧停状态的区别?先放着 | |
poweron | 上电 | 3000 | 否 | boolint32 | 0:未通电 1:已通电 其他如*-1:连不上等故障 | 自己判断的,还是设备读取出来的? | |
tool_sum | 刀具数量 | 3000 | 否 | int32uint32 | 整数,>=0 其他如*-1:连不上等故障 | ||
cur_prog_lineno | 当前运行程序行号 | 3000 | 否 | int32uint32 | 整数,>=0 其他如*-1:连不上等故障 | 和前面的当前运行程序号的区别? |
计算变量
变量地址 | 变量名称 | 更新周期(ms) | 控制使能 | 数据类型 | 值的意义 | 备注 |
---|---|---|---|---|---|---|
|
| |||||
self.原始加工状态==0&&self.故障状态==0&&self.原始加工状态.q==0 | 待机状态 | 3000 | 否 | bool | 0:不处于待机状态,包括:加工中或故障中或未连接 1:待机中 其他如*:连不上等故障 | 待机中条件:
|
self.原始加工状态==1&&self.故障状态==0&&self.原始加工状态.q==0 | 加工状态 | 否 | 0:未加工 1:加工中 其他如*:连不上等故障 | 加工中条件:
| ||
self.原始加工状态.q!=0 | 关机状态 | 否 | 关机状态指,设备未启动,因此连接不上,即未连接状态 0:未关机 1:已关机 | 估计状态条件:
另一种判断方法:
| ||
运行时间 | 转储到数据库时,每个状态的开始时间,结束时间,持续时间都会记录下来 |
要配置的4个状态变化点
配置状态变化点,可以计算每个状态持续时间、开始时间、结束时间,并写入数据库表
...