库卡机器人外部启动标准功能块
KUKA-KRC4 Funktion Roboter-Ansteuerung Auto-extern:
===================================================
Update 8.4.14, T. Berger:
Bereitsstellen Schnittstellensignale in DB, Update Safe Signale KRC4, ge?nderte
Parametrierung.
Dieser FC steuert die Schnittstelle zwischen S7 und KRC2/4
- er schaltet die Antriebe ein
- er gibt Systemfehlermelungen aus
- er quittiert die Stoerungen
- er steuert die Fahrfreigabe
- er gibt den Start Extern aus
- er steuert die Programmnummer-Uebergabe
- Schnittstellensignale Roboter - SPS werden in Visualisierungs DB geladen
Der FC ben?tigt eine fixe Datenstruktur, DB190!!!
Parameterbeschreibung:
ROB_NR E Int Roboter Nummer (für Ablage in Datenstruktur)
ADR_ROB E Int E/A Anfangsadresse, dabei umladen
EDxx0-EDxx3 intern auf LD0
ADxx0-ADxx3 intern auf LD4
ADR_ROB_SAFE E Int Sichere E/A Anfangsadresse
PROG E Byte Programm Nummer, Vorgabe in Dualcode (1-255)
STAR E Bool Roboterprogramm wird gestartet (Statische Ansteuerung)
...
OPN "DB_KUKA" DB190
// Offset Roboternummer in AR2 abbilden // Map offset robot number into AR2
L #ROB_NR // INT VALUE 1
+ -1 // ACCU1=0
L 100
*I //ACCU1=0
ITD
SLD 3 //0变为指针0.0
LAR2 // DB Zeiger im AR2 // DB pointer in AR2=0.0
// letzten FC Status holen // get last FC state
L DBD [AR2,P#50.0]
T LD 8
// Sichere E/A Anfangsadresse in AR1 abbilden // Map safe I/O start address into AR1
L #ADR_ROB_SAFE
T DBW [AR2,P#56.0]
ITD
SLD 3
LAR1
L ID [AR1,P#0.0] // SAFE Ausg?nge Roboter // SAVE outputs robot
T DBD [AR2,P#8.0]
L ID [AR1,P#4.0]
T DBD [AR2,P#12.0]
L QD [AR1,P#0.0] // SAFE Eing?nge Roboter // SAVE inputs robot
T DBD [AR2,P#24.0]
L QD [AR1,P#4.0]
T DBD [AR2,P#28.0]
// E/A Anfangsadresse in AR1 abbilden // Map I/O start address into AR1
L #ADR_ROB
T DBW [AR2,P#54.0]
ITD
SLD 3
LAR1
L ID [AR1,P#0.0] // Systemausg?nge Roboter KRC$OUT01-32 // system outputs Robot KRC$OUT01-32
T DBD [AR2,P#0.0]
T LD 0
L ID [AR1,P#28.0] // Anwenderausg?nge Roboter KRC$OUT225-256 // user outputs Robot KRC$OUT225-256
T DBD [AR2,P#4.0]
L QD [AR1,P#0.0] // Systemeing?nge Roboter KRC$IN01-32 // system inputs Robot KRC$IN01-32
T DBD [AR2,P#16.0]
T LD 4
L QD [AR1,P#28.0] // Anwendereing?nge Roboter KRC$IN225-256 // user inputs Robot KRC$IN225-256
T DBD [AR2,P#20.0]
疑问的地方是最开始的时候
L #ROB_NR // INT VALUE 1
+ -1 // ACCU1=0
L 100
*I //ACCU1=0
ITD
为什么要把ACCU1 里面的值0*100后把值再给ACCU1呢? 0*100不是没有什么变化吗?
请高手们指点一下,谢谢。