我这里有08年在ATPU做的防错系统。运行了2年多都没有任何问题,现在上传上来给大家做个参考。 不知道怎么上传附件,只能把STL格式的程序上传上来!!!! TITLE= 通过PLC系统实时监测电枪和OK扳手的运行,计算机得到发动机到站的信息后,通过数据库信息,将机型信息,装配启动信息等发送到PLC,由PLC检测电枪或OK扳手拧紧机是否正确装配拧紧了相关数量的螺钉或螺母,根据装配的情况确认是否报警,是否放行。 // 系统具有放行允许的"OK"指示灯,装配错误纠正后的错误确认按钮,如果零部件无需装配或不需进行防错处理,则可以通过选择开关直接选择放行。 // 防错系统的检测结果能够上传到工位的信息系统计算机,并可以查阅和追溯历史记录数据。123eatpu
代码语言:javascript复制//
Network 1
LD SM0.1
CALL SBR4
Network 2
LDB<> VB200, VB100
AB<> VB200, 0
LPS
A M2.0
AN M7.7
= M2.1
LRD
R M7.5, 2
LRD
R M2.3, 1
LRD
FILL 0, VW220, 4
LRD
S M2.0, 1
LRD
BMB VB201, VB221, 4
LPP
MOVB VB200, VB100
Network 3
// 新发动机到复位上个发动机的标志
LD M2.0
LPS
AB<> VB201, 0
= M1.1
LRD
AB<> VB202, 0
= M1.2
LRD
AB<> VB203, 0
= M1.3
LPP
AB<> VB204, 0
= M1.4
Network 4
LD SM0.0
CALL SBR0
CALL SBR2
CALL SBR1
Network 5
TITLE=检测电枪及OK扳手的信号。判断是否合格
Network 1 // 网络标题
// 网络注释
LD I0.4
TOF T97, 5
Network 2
LD T97
EU
= M4.1
Network 3
LD I0.5
TOF T98, 5
Network 4
LD T98
EU
= M4.2
Network 5
LD I0.6
TOF T99, 5
Network 6
LD T99
EU
= M4.3
Network 7
LD I0.7
TOF T100, 5
Network 8
LD T100
EU
= M4.4
Network 9
LD M1.1
A M4.1
AB> VB221, 0
DECB VB221
Network 10
LD M1.2
A M4.2
AB> VB222, 0
DECB VB222
Network 11
LD M1.3
A M4.3
AB> VB223, 0
DECB VB223
Network 12
LD M1.4
A M4.4
AB> VB224, 0
DECB VB224
Network 13
TITLE=输出
Network 1
LD M4.1
O M4.2
O M4.3
O M4.4
AN SM0.1
TOF T38, 10
Network 2
LD T38
= Q0.0
Network 3
// 电枪剩余次数都为0为全部合格
LDD= VD221, 0
= M7.7
Network 4
LDN T39
TON T39, 30
Network 5
LD M7.7
LD I0.0
AW< T39, 15
OLD
= Q0.1
Network 6
LD I0.2
TOF T36, 5
Network 7
LD T36
EU
= M2.2
Network 8
// 正常放行不合格标志
LD M2.2
O M2.1
A M2.0
O M5.7
AN I0.0
AN M7.7
AN I0.1
AN T116
= M5.7
Network 9
LD M5.7
TON T116, 50
= Q0.2
Network 10
LD M7.7
O I0.0
TOF T114, 10
Network 11
LD T114
= Q0.3
Network 12
// 正常放行
LD M2.2
A M2.0
LPS
AN I0.0
= M7.4
LPP
A I0.0
S M7.6, 1
Network 13
// 防错放行状态下,已放行
LD M7.4
A M7.7
S M7.5, 1
Network 14
LD M2.0
TON T112, 10
TON T113, 20
Network 15
// 装配结果完成,【防错状态】低四位:第0位,第1位表示放行11;第2位,第3位11表示出错
LD M7.7
O M7.5
O M7.6
O M7.4
ORB 16#0F, VB220
Network 16 // 结果上传
// VB200测试状态数据//装配结果完成,低四位为:1111,否则为:0000;装配完成且发动机已放行,高四位为:1111<强制放行>,或1100(装配完成正常放行),否则为:0000
LD M2.2
A M2.0
S M2.3, 1
Network 17 // 放行上传
// VB200测试状态数据//装配结果完成,低四位为:1111,否则为:0000;装配完成且发动机已放行,高四位为:1111否则为:0000
LD M7.5
O M7.6
A T113
ORB 16#30, VB220
Network 18
LD M7.5
O M7.6
A T113
R M2.0, 1
Network 19
// 强制放行
LD I0.0
= V220.6
= V220.7
TITLE=自由口通讯
// 0----VB1020开始是发送缓冲区
// VB2000----VB2076开始是接收缓冲区
Network 1
LD M0.2
CALL SBR3, M0.5
Network 2
LD M0.5
AB= VB1205, 4
BMB VB1209, VB201, 4
MOVB VB1206, VB200
Network 3
LD SM0.0
LPS
MOVB 16#AA, VB1001
MOVB 16#0, VB1002
MOVB VB880, VB1003
MOVB 16#55, VB1004
MOVB VB100, VB1006
MOVB VB220, VB1007
AN M2.3
BMB VB221, VB1008, 8
LRD
MOVB 16#0, VB1016
LRD
MOVB 16#0, VB1017
LPP
MOVB 16#0A, VB1020
Network 4
LD SM0.0
FILL 0, LW0, 10
MOVD &VB1006, LD0
FOR LW8, 1, 12
Network 5
LD SM0.0
BTI *LD0, LW4
AENO
I LW4, LW6
Network 6
LD SM0.0
INCD LD0
Network 7
NEXT
Network 8
LD SM0.0
MOVW LW6, VW1018
TITLE=检验接收数据的效验和。
Network 1 // 网络标题
// 网络注释
LD SM0.0
R M0.2, 1
FILL 0, LW0, 10
MOVD &VB1206, LD1
Network 2
LD SM0.0
FOR LW5, 1, 68
Network 3
LD SM0.0
LPS
BTI *LD1, LW7
AENO
I LW7, LW9
LPP
MOVW LW9, VW70
Network 4
LD SM0.0
INCD LD1
Network 5
NEXT
TITLE=复位一些数据
Network 1
LD SM0.0
LPS
FILL 0, VW200, 4
AENO
FILL 0, VW220, 4
AENO
FILL 0, VW1200, 40
LRD
MOVB 0, VB100
AENO
FILL 0, VW1000, 11
AENO
FILL 0, VW1500, 10
LRD
R M2.0, 2
LRD
R M7.5, 2
LPP
MOVB 0, MB0
Network 2 // 通讯
// 通讯参数设定
// SMB30: 16#05波特率为19200;16#09波特率为9600
LD SM0.0
MOVB 16#05, SMB30
MOVB 16#D0, SMB87
MOVB 16#AA, SMB88
MOVW 5, SMW90
MOVW 100, SMW92
MOVB 76, SMB94
ATCH INT0, 9
ATCH INT1, 23
ENI
RCV VB1500, 0
GPA VB880, 0
MOVB 20, VB1000
MOVB 10, SMB35
Network 3 // 网络标题
// 网络注释
Network 4
TITLE=发送完成中断程序
Network 1 // 网络标题
// 网络注释
LD SM0.0
R M0.5, 1
S SM87.7, 1
RCV VB1500, 0
TITLE=接收完成中断程序
Network 1
LDB= VB1501, 16#AA
AB= VB1502, VB880
AB= VB1503, 16#0
AB= VB1576, 16#0A
AB= VB1504, 16#55
S M0.2, 1
BMB VB1501, VB1201, 76
MOVB VB1205, VB1005
R SM87.7, 1
ATCH INT2, 11
CRETI
NOT
RCV VB1500, 0
TITLE=中断程序注释
Network 1 // 网络标题
// 断开定时器中断
// 在端口0向用户会送信息
LD SM0.0
DTCH 11
R SM87.7, 1
RCV VB1500, 0
XMT VB1000, 0