切換布幕(畫面)函式:
swscreen(type, kind, datanum, default, pmc, address)
說明:
type 引數 :
- type = 0:切換到暫存器(PMC or Macro)中儲存的編號。 當暫存器內存為0時,切換到default引數。
- type = 1:在類型和數據參數中寫入默認參數的屏幕號後,切換到種類和數據的布幕號。當該功能被指定為用輸入寫入控制功能時,指定該過程分區。 屏幕上的輸入值取自默認參數。
- type = 2:將目前布幕編號寫到暫存器(PMC or Macro)。此功能不會切換布幕。
- type = 3:與type 1 類似,還沒理解正確的用法。
- type = 4:根據暫存器(PMC or Macro)陣列,指定的主布幕和子布幕的組合。在刪除彈出屏幕時,除主屏幕編號外的所有子屏幕編號都指定0。
- type = 5:讀取目前顯示的主布幕或子布幕編號。
kind 引數:
kind 是指暫存器的編號,共三碼,
開頭為1XX表示使用PMC暫存器,
開頭為2XX表示使用Macro,
- 目前使用這種方式有遇到問題,Button按了兩次才執行換頁
開頭為3XX表示使用P Code Macro,
但我只用過PMC暫存器,
- 當type = 0~3:主布幕要規劃PMC 4 Byte的暫存器
- 當type = 4:主布幕要規劃PMC 4 Byte的暫存器,子布幕要規劃PMC 2 Byte的暫存器,共24Byte 的暫存器。
- 當type = 5:這個是讀取布幕號的不使用暫存器。
- 如果是使用Macro,無論主布幕或子布幕就都使用一個變數存一個編號。
datanum 引數:
暫存器位址,type = 0~4 時使用。當type = 5時,請帶入0。
default 引數:
- type = 0:當kind = 0 & datanum = 0,切換到 default 內存的布幕編號。
- type = 1:(我沒使用過先不解釋)
- type = 2:不使用default,請帶入0。
- type = 3:當kind = 0 & datanum = 0,切換到 default 內存的布幕編號。
- type = 4:不使用default,請帶入0。
- type = 5:default = 0時,回傳主布幕編號。default = 1~10時,回傳子布幕編號。
pmc、address 引數:
需要回傳通知時使用,我目前沒在使用,因此固定pmc=99,address=0。
它有一些限制,連我自己都會常常忘記。
*此函式不可在Startup中使用。
* 此函式不可在Timer中使用。
* 呼叫的MainScreen必須有Structure元件。
*呼叫的SubScreen不可以有Structure元件。
*僅type 4可以切換子布幕。
*畫面設計時,請從Sub 2 切畫面到另一個 Sub 2,如果切錯層(EX:在Sub3)時,會出現此訊息
*當Main Screen 設定不存在的Screen Number時,會說找不到
*SubScreen明明就有在Detail 定義Screen Number ,卻說找不到,是因為該元件並沒有在Sturcture 裡的SubScreen
(抱怨:明明Change Screen 這個元件能將Sub Screen 切換到另一個Sub Screen,此SubScreen 也沒有在Structure中,沒道理script做不到)
解決上述SubScreen問題之密技:
我用了Change Screen 元件放在不明顯的地方(無法放置元件在畫面外),
與背景色相同,Screen Type : Sub Screen,
Screen Name是我要切換的Sub Screen,
script 就能夠正常使用該Sub Screen。
範例 & 註解:
- swscreen(0, 105, 6020, 3, 99, 0) #切換到R6020,若R6020為0時,切換到3,不含清除pop-up Screen 指令
- swscreen(2, 105, 6020, 0, 99, 0) #將目前的布幕編號寫到R6020
- swscreen(3, 105, 6020, 3, 99, 0) #切換到R6020,若R6020為0時,切換到3,含清除pop-up Screen 指令
- swscreen(4, 105, 6020, 0, 99, 0) #切換到R6020~R6043 (Main R6020, Sub1 R6024, Sub2 R6026, Sub3 R6028, Sub4 R6030 ... Sub10 R6042),含清除pop-up Screen 指令
- no = swscreen(5, 0, 0, 0, 99, 0) #讀取目前主布幕編號
- sub_no = swscreen(5, 0, 0, 1, 99, 0) #讀取目前子布幕1的編號
參考:
- 操作手冊 B-66284EN/09 page : 421、482~485
- Script - PMC讀寫
- FANUC PICTURE 9.2
返回《 Script整理 》
返回《 FANUC PICTURE 9.2 》