字串函數

應用

字串函數允許您使用QS參數定義並處理字串(例如為了用FN 16: F-PRINT建立變數日誌)。在計算中,字串代表字元的字母數字順序。

功能說明

您最多可指定255個字元給QS參數

  • QS參數之內允許下列字元:
  • 字元
  • 數字
  • 特殊字元,例如?
  • 控制字元,例如用於路徑的\
  • 空格

使用自由語法輸入編寫的個別字串函數。

編輯NC函數

QS參數之值可用公式Q/QL/QR字串公式QS NC函數來處理或檢查。

語法

NC函數

較高階NC函數

DECLARE STRING

指派一字母數字值給QS參數

指派字母數字值給QS參數

STRING FORMULA

串接QS參數的內容並指派給QS參數

字母數字值串接

字串公式QS

TONUMB

QS參數的文字數字值轉換成數值,並指派給Q、QL或QR參數

將文字數字值轉換成數值

公式Q/QL/QR

TOCHAR

將數值轉換為文字數字值並指派給QS參數

將數值轉換成文字數字值

字串公式QS

SUBSTR

複製來自QS參數的子字串並指派給QS參數

複製來自QS參數的子字串

字串公式QS

SYSSTR

讀取系統資料並將內容指派給QS參數

使用SYSSTR讀取系統資料

字串公式QS

INSTR

搜尋QS參數內的子字串,並將獲取的字元指派給Q、QL或QS參數

搜尋QS參數內容之內的子字串

公式Q/QL/QR

STRLEN

確定QS參數的字串長度,並指派給Q、QL或QR參數

確定QS參數內容中的字元數

公式Q/QL/QR

STRCOMP

以升序比較QS參數,並將結果指派給Q、QL或QR參數

比較兩字母數字字串的語法順序

公式Q/QL/QR

CFGREAD

讀取機械參數的內容並指派給QS參數

接受工具機參數的內容

  • 字串公式QS
  • 公式Q/QL/QR

使用SYSSTR讀取系統資料

您可使用SYSSTR NC函數讀取系統資料,並將內容儲存在QS參數內。藉由群組編號(ID)和號碼(NR)來選擇系統工件原點。

選擇性,可輸入IDXDAT

您可讀取以下系統資料:

群組名稱,ID號碼

號碼

意義

程式資訊,10010

1

目前主程式或工作台程式的路徑

2

目前執行的NC程式之路徑

3

使用循環程式12 PGM CALL選取的NC程式路徑

10

使用SEL PGM 選擇NC程式路徑

通道資料,10025

1

目前通道的名稱(例如CH_NC)

刀具呼叫內程式編輯的值,10060

1

目前的刀名

 
Tip

若刀具以經用其刀名呼叫,則NC函數只儲存刀名。

座標結構配置,10290

10

在最後FUNCTION MODE NC函數內編寫的座標結構配置

目前的系統時間,10321

1至16,20

  • 1: D.MM.YYYY h:mm:ss
  • 2: D.MM.YYYY h:mm
  • 3: D.MM.YY hh:mm
  • 4: YYYY-MM-DD hh:mm:ss
  • 5: YYYY-MM-DD hh:mm
  • 6: YYYY-MM-DD h:mm
  • 7: YY-MM-DD h:mm
  • 8: DD.MM.YYYY
  • 9: D.MM.YYYY
  • 10: D.MM.YY
  • 11: YYYY-MM-DD
  • 12: YY-MM-DD
  • 13: hh:mm:ss
  • 14: h:mm:ss
  • 15: h:mm
  • 16: DD.MM.YYYY hh:mm
  • 20:XX
    • "XX"代表當前日曆週的兩位數字,根據ISO 8601,其特徵如下:
    • 包含七天
    • 從星期一開始
    • 依序編號
    • 第一個日曆週(第01週)是公曆年的第一個星期四。

接觸式探針資料,10350

50

主動式TS工件接觸式探針的類型

70

主動式TS刀具接觸式探針的類型

73

主動式TS工件接觸式探針來自activeTT機械參數的名稱

工作台加工的資料,10510

1

要加工的工作台名稱

2

目前選取的工作台資料表之路徑

NC軟體版本,10630

10

NC軟體版本編號

不平衡循環程式的資訊,10855

1

不平衡校準表的路徑

不平衡校正表屬於啟動座標結構配置的一部分。

刀具資料,10950

1

目前的刀名

2

目前刀具的DOC欄之內容

3

目前刀具的AFC控制設定

4

目前刀具的刀具台車座標結構配置

使用CFGREAD讀取機械參數

您可使用CFGREAD NC函數讀取控制器的機械參數內容當成數字或文字值。顯示的數值總是以公制單位顯示。

若要讀取機械參數,必須在控制器的組態編輯器內確定以下內容:

符號

類型

意義

按鍵

機械參數的群組名稱

群組名稱可選擇性指定

本質

參數物件

名稱總是屬於Cfg

屬性

工具機參數名稱

索引

機械參數的清單索引

清單索引可選擇性指定

 
Tip

您可在機械參數的組態編輯器中更改現有參數的顯示。依照預設,參數以簡短、易懂的文字來顯示。

每次要用CFGREAD NC函數讀取機械參數時,必須先用屬性、本質與按鍵定義QS參數

接受工具機參數的內容

指派字母數字值給QS參數

在使用並處理字母數字值之前,需要指派字元給QS參數。使用宣告字串命令來進行。

  1. 選擇插入 NC函數
  2. 控制器開啟插入NC函數視窗。

  1. 選擇DECLARE STRING
  2. 定義QS參數給結果
  3. 選擇名稱
  4. 輸入所要的值
  5. 結束NC單節

  1. 執行NC單節
  2. 控制器將輸入值儲存在目標參數內。

在此範例中,控制器指派文字數字值給QS參數 QS10

11 DECLARE STRING QS10 = "workpiece"

; 指派字母數字值給QS10

字母數字值串接

您可使用||串接運算元串接多個QS參數的內容,這讓您組合固定與可變文字數字值。

  1. 選擇插入 NC函數
  2. 控制器開啟插入NC函數視窗。

  1. 選擇字串公式 QS
  2. 定義QS參數給結果

  1. 開啟公式輸入的鍵盤

  1. 選擇連接運算元||

  1. 在串接運算元的左邊,指定內含第一子字串的QS參數編號
  2. 在串接運算元的右邊,定義內含第二子字串的QS參數編號
  3. 結束NC單節
  4. 確認輸入
  5. 控制器在依照目標參數內字母數字值連續執行之後儲存子字串。

在此範例中,控制器串接QS參數 QS12QS13的內容。文字數字值已指派給QS參數 QS10

11 QS10 = QS12 || QS13

; 串接QS12QS13的內容並指派給QS參數 QS10

參數內容:

  • QS12狀態:
  • QS13廢棄
  • QS10狀態:廢棄

將文字數字值轉換成數值

您可使用TONUMB NC函數,將來自QS參數的數字字元專門儲存為不同的變數類型。然後,您可在計算中使用這些值。

在此範例中,控制器將QS參數 QS11的文字數字值轉換成數值。此值已指派給QS參數 Q82

11 Q82 = TONUMB ( SRC_QS11 )

; 將來自QS11的文字數字值轉換成數值並指派給Q82

將數值轉換成文字數字值

您可使用TOCHAR NC函數將變數內容儲存至QS參數。例如,儲存的內容可與其他QS參數串接。

在此範例中,控制器將QS參數 Q50的數值轉換成文字數字值。控制器將此值指派給QS參數 QS11

11 QS11 = TOCHAR ( DAT+Q50 DECIMALS3 )

; 將來自Q50的數值轉換成文字數字值並指派給QS參數 QS11

複製來自QS參數的子字串

您可使用SUBSTR NC函數,將來自QS參數的已定義子字串儲存至另一個QS參數。例如,可使用此NC函數來從絕對檔案路徑擷取檔名。

在此範例中,控制器將QS參數 QS10的子字串儲存至QS參數 QS13。您可使用BEG2語法元件,定義控制器忽略頭兩個字元,從第三字元開始複製。您可使用LEN4語法元件,定義控制器複製再來四個字元。

11 QS13 = SUBSTR ( SRC_QS10 BEG2 LEN4 )

; 指派來自QS10的子字串給QS參數 QS13

搜尋QS參數內容之內的子字串

您可使用INSTR NC函數檢查QS參數之內是否內含特定子字串。這讓您確定例如多個QS參數的串接是否成功。對於檢查,必須指示兩個QS參數。控制器在第一QS參數內搜尋第二QS參數的內容。

如果找到子字串,則控件儲存字元數,直到其到達結果參數的子字串引用。如果發現多次出現,結果是相同的,因為控制器會儲存第一個。

如果找不到要搜索的子字串,則控制器將所有字元儲存到結果參數中。

在此範例中,控制器在QS參數 QS10內搜尋QS13內儲存的字串。搜尋從第三字元開始。當計數字元時,控制器從零開始。控制器將事件指派給Q參數 Q50當成字元數。

37 Q50 = INSTR ( SRC_QS10 SEA_QS13 BEG2 )

確定QS參數內容中的字元數

STRLEN NC函數確定QS參數內容內的字元數。運用此NC函數,例如可確定檔案路徑的長度。

若選取的QS參數尚未定義,則控制器回傳值-1

在此範例中,控制器確定QS參數 QS15內的字元數。字元數的數值已指派給QS參數 Q52

11 Q52 = STRLEN ( SRC_QS15 )

; 確定QS15內字元數並指派給Q52

比較兩字母數字字串的語法順序

您可使用STRCOMP NC函數,比較兩QS參數的內容之語法順序。

控制器傳回以下的結果:

  • 0:兩參數的內容一致
  • -1:在語法順序中,第一QS參數的內容在第二QS參數的內容之前
  • +1:在語法順序中,第一QS參數的內容在第二QS參數的內容之後
  1. 語法順序如下:
  2. 特殊字元(例如?_)
  3. 數字(例如123)
  4. 大寫字母(例如ABC)
  5. 小寫字母(例如abc)
 
Tip

從第一字元開始,控制器執行直到QS參數的內容彼此不同,如果內容從例如第四位元開始不同,則控制器放棄此點上的檢查。

具有一致字串的較短內容顯示在順序開頭(例如abcabcd之前)。

在此範例中,控制器比較QS12QS14的語法順序。結果已指派給QS參數 Q52當成數值。

11 Q52 = STRCOMP ( SRC_QS12 SEA_QS14 )

; 比較QS12QS14之值的語法順序

接受工具機參數的內容

根據機械參數的內容,可使用CFGREAD NC函數將文字數字值接管到QS參數,或將樹直接管到Q、QL或QR參數

在此範例中,控制器將來自pocketOverlap機械參數的疊加係數儲存為Q參數內的數值。

  • 工具機參數內指定的設定:
  • ChannelSettings
  • CH_NC
    • CfgGeoCycle
      • pocketOverlap

範例

11 QS11 = "CH_NC"

; 指派按鍵給QS參數 QS11

12 QS12 = "CfgGeoCycle"

; 指派輸入給QS參數 QS12

13 QS13 = "pocketOverlap"

; 指派屬性給QS參數 QS13

14 Q50 = CFGREAD( KEY_QS11 TAG_QS12 ATR_QS13 )

讀取機械參數的內容

  • CFGREAD NC函數包括以下語法元件:
  • KEY_QS: 工具機參數的群組名稱(按鍵)
  •  
    Tip

    如果沒有可用的群組名稱,則為相應的QS參數定義空白值。

  • TAG_QS: 工具機參數的物件名稱(本質)
  • ATR_QS: 工具機參數名稱(屬性)
  • IDX: 工具機參數索引

使用CFGREAD讀取機械參數

備註

如果使用字串公式QS NC函數,結果始終為文字數字值。如果使用公式Q/QL/QR NC函數,結果始終為數值。