在創(chuàng)建RAPID程序時(shí),可以設(shè)定程序是否含有參數(shù)。程序的參數(shù)有:輸入(in)、輸入輸出(inout)、變量(var)、可變量(pers) 四種模式。那不同的參數(shù)模式有什么區(qū)別呢? ![]() 為了解答這個(gè)問題 ,首先約定一下“形參”和“實(shí)參”的統(tǒng)一認(rèn)知。我們把程序本體中的參數(shù)稱為形參,調(diào)用帶參數(shù)程序時(shí)帶入的數(shù)據(jù)稱為實(shí)參。下圖中對(duì)形參和實(shí)參進(jìn)行了標(biāo)注。 帶參數(shù)的程序中對(duì)形參進(jìn)行運(yùn)算操作,根據(jù)參數(shù)模式的不同,實(shí)參有會(huì)被改變自身的值和不會(huì)被改變自身的值兩種情況發(fā)生,in模式下的實(shí)參其自身的值不會(huì)被改變,其他模式下的實(shí)參其自身的值會(huì)被改變。 當(dāng)帶參數(shù)程序Routine1的參數(shù)為in模式時(shí),運(yùn)行以下程序: ![]() 輸出結(jié)果為: ![]() 當(dāng)帶參數(shù)程序Routine1的參數(shù)為inout模式時(shí),運(yùn)行相同的程序: ![]() 由以上示例程序可以看出in模式與其他參數(shù)模式的區(qū)別。輸入(in)、輸入輸出(inout)、變量(var )、可變量(pers) 四種模式還有以下區(qū)別: (1)In模式下的參數(shù),因?yàn)閷?shí)參自身不會(huì)被改變,所以實(shí)參可以是任何存儲(chǔ)類型的數(shù)據(jù),const、var、pers中的任何一種存儲(chǔ)類型都可以; (2)inout模式下的參數(shù),因?yàn)閷?shí)參自身會(huì)被改變,所以實(shí)參不能是const存儲(chǔ)類型的數(shù)據(jù),以const類型存儲(chǔ)的數(shù)據(jù)不能在程序中被賦值; (3)var/pers模式下的參數(shù),實(shí)參自身會(huì)被改變,且實(shí)參的存儲(chǔ)類型必須與形參的存儲(chǔ)類型一致,var模式和per模式可以視為inout模式的兩個(gè)子集;
這個(gè)應(yīng)該是一個(gè)bug,在RobotStudio軟件RAPID編程界面中,賦值指令左邊可以是任意模式的參數(shù),語(yǔ)法檢查無(wú)錯(cuò)誤,程序運(yùn)行正常。 |
|