關于變量命名對于編程者都有自己的習慣,而別人卻不一定懂得或理解,所以對于一個公司必須有統一的規范,否則調試編程人員需要去適應其他編程調試人員。基于之前在GB公司的工作經驗,他們在公司標準化方面確實做得成熟,正是那段經歷讓我收獲頗多。后面我也會分享Excel及Excel VBA或者Python在標準化上面的示例。(本文只是個人習慣,不代表其他人)
1.1 變量命名規則
KRL是KUKA的編程語言,在對機器人進行編程時,變量是在機器人程序運行中出現的各種計算值的存儲器。每個變量都屬于一個專門的數據類型,在應用前必須聲明數據類型;變量按照存儲位置可劃分為局部變量和全局變量。一個全局變量,適用于所有程序。一個局部變量建立于某程序模塊中,因此僅適用于此程序模塊。變量定義規則如下:①變量名稱長度最多允許24個字符。②變量名稱允許含有字母 (A ~ Z)、數字 (0 ~ 9) 以及特殊字符“_” 和“$”。③變量名稱不允許以數字開頭。④變量名稱不允許使用系統關鍵詞。⑤變量名稱不區分大小寫(但還是建議使用駝峰規則來定義變量)。⑥變量命名最好沒有下劃線,推薦使用駝峰命名規則。當變量沒有下劃線時,可以在KCP快速訪問變量,而且沒必要變量名中是否有下劃線。⑦變量應根據其數據類型添加前綴,并且其名稱應以簡潔的方式簡短地說明其功能
1.1.1 變量名稱
1.輸入輸出信號變量:①單個輸入信號 (1 位)-以前綴i開始表示單個輸入信號: SIGNAL iVacuumOk $IN[1]
②多個輸入信號(》 1 位)-以前綴gi開始表示輸入信號組: SIGNAL giSt12PlateType $IN[1281] TO $IN[1296]
③單個輸出信號 (1 位)-以前綴o開始表示單個輸入信號: SIGNAL oErrorTarget $OUT[1265]
④多個輸出信號(》 1 位)-以前綴go開始表示輸出信號組: SIGNAL goStartValueEnc1 $OUT[705] TO $OUT[721]
⑤模擬輸入信號-以前綴ai開始表示模擬輸入信號: SIGNAL aiWeldVoltage $ANIN[1]
⑥模擬輸出信號-以前綴ao開始表示模擬輸出信號: SIGNAL aoActPower $ANOUT[1]
2.布爾型變量-以前綴b開始表示布爾類型: DECL BOOL bGripperEmpty= TRUE
3.有符號整形變量-以前綴z開始表示布爾類型: DECL INT zTarget = 2
4.單精度浮點類型變量-以前綴r開始表示布爾類型: DECL REAL rCenterOffset= 0.0
5.FRAME型變量-以前綴f開始表示布爾類型: DECL FRAME fStackCorrection[2]
6.枚舉型變量-以前綴e開始表示布爾類型: DECL ENUM ePostion HOME,STACK12,STACK34,CULLET,DROPOFF_CONV,RAZING
DECL ePostion POSITION = #HOME
7.結構體類型變量-以前綴s定義結構體類型但變量定義前無任何前綴: DECL STRUC sRackData INT nActType,… DECL sRackData Stack[2] Stack[1]= {nActType 1,…}
8.POS / AXIS/E6POS/E6AXIS位置類型變量-以前綴x定義變量: ①計算獲得的變量-以前綴mx定義變量: DECL POS mxAfterTouched[2]
②通過示教獲得的位置變量-以前綴x定義變量: DECL E6POS xStack12A = {X … }
9.字符及字符串類型變量-以前綴s定義變量: DECL CHAR sCharacter= “A”
1.1.2 基本準測1.對于所有變量類型,常量前面都帶有c,然后緊接著變量前綴(見1.1.1): DECL INT czCompMin = 30
2.對于所有變量類型,局部變量均以l (local)開頭: DECL INT lzCompMin = 30
3.對于所有變量類型,運行過程變量前面都帶有一個n: DECL INT nzActStack
4.對于通過外部信號插入程序的所有變量類型,若為輸入信號,則第二個字符為i;若為輸出信號,則第二個字符為o: DECL BOOL biProgramEnd= FALSE
DECL INT zoPlateType = 1
5.坐標點/坐標位置命名規則必須保持標準化的點名稱,以使運動易于閱讀。
⑴起點/ 終點:例如xHomeA,xStack12A,等。①從一個工站到另一個工站的運動永遠不會使用起點。②點的名稱總是指定位置,而不是功能!(例如xConveyor1而不是xDropOff)。③每個路徑都有單獨的起點和終點!
⑵從一個工站到另一個工站的運動:每個起點基本上都有兩條通向每個目標點的路徑,只從Home位開始的這些工站除外:① ServicePosition ②Cullet1 ③ Cullet2例如:沿著路徑A從原點Home到工站Stack12的運動路徑: Home_Stack12(#A) ①起始預備點: xHome_Stack12A1 (最接近起點的點或距離終點最遠的點) ②中間點: xHome_Stack12A2(注釋掉,如果沒有必要) ③中間點: xHome_Stack12A3 (注釋掉,如果沒有必要) ④終點預備點: xHome_Stack12A4 (距離終點最近的點) ⑤終點: xStack12A例如:沿著路徑A從工站Stack12到工站Stack34的運動路徑: Stack12_Stack34(#A) ①起始預備點: xStack12_Stack34A1 (最接近起點的點或距離終點最遠的點) ②中間點: xStack12_Stack34A2 (注釋掉,如果沒有必要) ③中間點: xStack12_Stack34A3 (注釋掉,如果沒有必要) ④終點預備點: xStack12_Stack34A4 (距離終點最近的點) ⑤終點: xStack34A例如:沿著路徑B從工站Stack12到工站Stack34的運動路徑: Stack12_Stack34(#B)
①起始預備點: xStack12_Stack34B1 (最接近起點的點或距離終點最遠的點) ②中間點: xStack12_Stack34B2 (注釋掉,如果沒有必要) ③中間點: xStack12_Stack34B3 (注釋掉,如果沒有必要) ④終點預備點: xStack12_Stack34B4 (距離終點最近的點) ⑤終點: xStack34B
1.1.3 變量位置/路徑:1. 必須在全局系統文件R1System$Config.Dat中聲明對外部設備或站的輸入和輸出2. 全局變量必須在R1ProgramDat文件夾中的相應數據類型文件中聲明,例如,必須在文件b_bool.dat中聲明一個布爾變量。數據文件說明
b_bools.dat 存放所有用戶定義的全局Bool類型變量
z_intergers.dat 存放所有用戶定義的全局Int類型變量
r_reals.dat存放所有用戶定義的全局Real類型變量
f_frames.dat存放所有用戶定義的全局Frame類型變量
Structs.dat存放所有用戶定義的全局Struc類型變量
e_enums.dat存放所有用戶定義的全局Enum類型變量
x_Points_Movements.dat存放所有直接運動或間接運算的全局且固定位置點變量
mx_Points.dat存放所有可變的全局位置點類型變量
Strings.dat存放所有用戶定義的全局CHAR類型變量(如:報警信息)
3. 盡可能避免使用常量,而應使用變量.4. 運動點: ①外部計算或模擬的點將傳輸到全局公共“DA文件”。點坐標和相關參考空間參數(BASE,TOOL)必須在文件x_points_movements.dat中全局聲明。②計算和計算的點也存儲在單獨的全局公共“DAT文件”中。點坐標和相關參考空間參數(Base,TCP)必須在以下文件中全局聲明:x_points.dat③可變點數據必須在mx_points.dat中聲明。
1.2 子程序及函數
⑴ fl前綴: 局部函數
⑵ ul前綴: 局部子程序⑶ ip前綴: 中斷程序⑷ o前綴: 將輸出變量寫入控制器輸出信號的函數⑸ i前綴: 從控制器輸入信號讀取輸入變量的函數
責任編輯:pj
-
機器人
+關注
關注
213文章
29730瀏覽量
212831 -
儲存
+關注
關注
3文章
202瀏覽量
22728
發布評論請先 登錄
評論