发表于:2016/12/6 14:59:10
#0楼
默默地问下,这个可以用排列组合来解决吗?
IO交互信息如下:
ID Global Val Remark
1 F1 0 F1治具待机
2 F1 1 F1治具良品
3 F1 2 F1治具不良品
4 F1 3 F1治具测试中
5 F2 0 F2治具待机
6 F2 1 F2治具良品
7 F2 2 F2治具不良品
8 F2 3 F2治具测试中
9 F3 0 F3治具待机
10 F3 1 F3治具良品
11 F3 2 F3治具不良品
12 F3 3 F3治具测试中
13 F4 0 F4治具待机
14 F4 1 F4治具良品
15 F4 2 F4治具不良品
16 F4 3 F4治具测试中
17 Line 1 放料点有料
18 Line 0 放料点无料
19 a 1 A夹爪关闭
20 a 0 A夹爪打开
21 b 1 B夹爪关闭
22 b 0 B夹爪打开
23 NGA 1 不良品点有料
24 NGA 0 不良品点无料
25 OKA 1 良品点有料
26 OKA 0 良品点无料
干货如下:
Global Integer F1, F2, F3, F4, NGA, OKA, Lin, a, b
Global Long cycleCount '定义一个长整型变量 用于循环和统计次数
Function main
' baojing1:
' Halt main
Xqt IO
GoSub InitRobot
Do
Go PHome
'下面的代码就是INPUT区域没板子检测的代码
If b = 1 And F2 = 1 And F4 = 0 Then
GoSub B_F4_INPUT 'B爪治具4放板
Else
If b = 0 And F2 = 1 And F4 = 0 Then '检查B夹爪没板子,同时检查治具4是不是没板子
GoSub B_F2_Ok 'B爪治具2位置取板
GoSub B_F4_INPUT 'B爪治具4放板
EndIf
EndIf
If a = 1 And F2 = 1 And F3 = 0 Then
GoSub A_F3_INPUT 'B爪治具3放板
Else
If a = 0 And F2 = 1 And F3 = 0 Then '检查A夹爪没板子,同时检查治具3是不是没板子
GoSub A_F2_Ok 'A爪治具2位置取板
GoSub A_F3_INPUT 'A爪治具3放板
EndIf
EndIf
If b = 1 And F1 = 1 And F2 = 0 Then
GoSub B_F2_INPUT 'B爪治具2放板
Else
If b = 0 And F1 = 1 And F2 = 0 Then '检查B夹爪没板子,同时检查治具2是不是没板子
GoSub B_F1_Ok 'B爪治具1位置取板
GoSub B_F2_INPUT 'B爪治具2放板
EndIf
EndIf
If a = 1 And F1 = 0 Then
GoSub A_F1_INPUT 'A爪治具1放板
Else
If a = 0 And F1 = 0 Then '检查A夹爪没板子,同时检查治具1是不是没板子
GoSub A_INPUTSTART 'A爪投站位置取板
GoSub A_F1_INPUT 'A爪治具1放板
EndIf
EndIf
Loop
Function InitRobot '子函数用于初始化位置和数值
Reset '复位指令 主要是复位已有的错误
If Motor = Off Then ' 如果MOTOE 没启动 就启动它
Motor On
EndIf '结束ENDIF
Power High ' 注意这有个 High 意思是说进入功率运行 调试的时候不可以这样
Speed 50 '确定运行 的速度 为最高速的一半
Accel 50, 50 '确定加速度
Fend '结束子程序
IO交互信息如下:
ID Global Val Remark
1 F1 0 F1治具待机
2 F1 1 F1治具良品
3 F1 2 F1治具不良品
4 F1 3 F1治具测试中
5 F2 0 F2治具待机
6 F2 1 F2治具良品
7 F2 2 F2治具不良品
8 F2 3 F2治具测试中
9 F3 0 F3治具待机
10 F3 1 F3治具良品
11 F3 2 F3治具不良品
12 F3 3 F3治具测试中
13 F4 0 F4治具待机
14 F4 1 F4治具良品
15 F4 2 F4治具不良品
16 F4 3 F4治具测试中
17 Line 1 放料点有料
18 Line 0 放料点无料
19 a 1 A夹爪关闭
20 a 0 A夹爪打开
21 b 1 B夹爪关闭
22 b 0 B夹爪打开
23 NGA 1 不良品点有料
24 NGA 0 不良品点无料
25 OKA 1 良品点有料
26 OKA 0 良品点无料
干货如下:
Global Integer F1, F2, F3, F4, NGA, OKA, Lin, a, b
Global Long cycleCount '定义一个长整型变量 用于循环和统计次数
Function main
' baojing1:
' Halt main
Xqt IO
GoSub InitRobot
Do
Go PHome
'下面的代码就是INPUT区域没板子检测的代码
If b = 1 And F2 = 1 And F4 = 0 Then
GoSub B_F4_INPUT 'B爪治具4放板
Else
If b = 0 And F2 = 1 And F4 = 0 Then '检查B夹爪没板子,同时检查治具4是不是没板子
GoSub B_F2_Ok 'B爪治具2位置取板
GoSub B_F4_INPUT 'B爪治具4放板
EndIf
EndIf
If a = 1 And F2 = 1 And F3 = 0 Then
GoSub A_F3_INPUT 'B爪治具3放板
Else
If a = 0 And F2 = 1 And F3 = 0 Then '检查A夹爪没板子,同时检查治具3是不是没板子
GoSub A_F2_Ok 'A爪治具2位置取板
GoSub A_F3_INPUT 'A爪治具3放板
EndIf
EndIf
If b = 1 And F1 = 1 And F2 = 0 Then
GoSub B_F2_INPUT 'B爪治具2放板
Else
If b = 0 And F1 = 1 And F2 = 0 Then '检查B夹爪没板子,同时检查治具2是不是没板子
GoSub B_F1_Ok 'B爪治具1位置取板
GoSub B_F2_INPUT 'B爪治具2放板
EndIf
EndIf
If a = 1 And F1 = 0 Then
GoSub A_F1_INPUT 'A爪治具1放板
Else
If a = 0 And F1 = 0 Then '检查A夹爪没板子,同时检查治具1是不是没板子
GoSub A_INPUTSTART 'A爪投站位置取板
GoSub A_F1_INPUT 'A爪治具1放板
EndIf
EndIf
Loop
Function InitRobot '子函数用于初始化位置和数值
Reset '复位指令 主要是复位已有的错误
If Motor = Off Then ' 如果MOTOE 没启动 就启动它
Motor On
EndIf '结束ENDIF
Power High ' 注意这有个 High 意思是说进入功率运行 调试的时候不可以这样
Speed 50 '确定运行 的速度 为最高速的一半
Accel 50, 50 '确定加速度
Fend '结束子程序