MES-Connect Driver使用指南

2018-08-20 11:39:42 新闰晖物联 53


 blob.png

Connect Driver使用指南

Sajet DriverUser’s Manual

 

Version 5.1

 

 

1. 軟體設計理念... 3

2. ATE API軟體說明... 4

2.1 安裝軟體... 4

2.2 Dirver基本說明... 4

2.3 Dirver說明- SajetTransStart... 4

2.4 Dirver說明- SajetTransClose... 5

2.5 Dirver說明- SendSajetDriver... 5

3. 連線軟體流程圖... 7

3.1 流程說明:... 8

4. Protocal Format of f_pData paramenter 9

4.1 API 參數格式... 9

4.2 f_iCommandNo = 1. 9

4.3 f_iCommandNo = 2. 10

4.4 f_iCommandNo = 3. 11

4.5 f_iCommandNo = 4. 12

4.6 f_iCommandNo = 5. 13

4.7 f_iCommandNo = 6. 14


1. 軟體設計理念

 

本軟體主要是提供客戶自行撰寫程式將資料傳送給MES系統MES系統確認資料的正確性與記錄的工作MES系統也會將相關資料回傳回來

 

本軟體具備幾下的功能

提供driverfunction calluser自行開發程式


2. ATE API軟體說明

2.1 安裝軟體

請先將本軟體的壓縮檔(Connect Driver.zip)解壓縮至電腦中會發現有兩個目錄driversampledriver目錄下存放的是本軟體的Driver(SajetConnect.Dll)當撰寫程式時這個目錄下的所有檔案須複製至同個目錄 sample目錄下存放的是本軟體用Delphi 開發的sample範例。

 

2.2 Dirver基本說明

我們提供的driver (SajetConnect.DLL) 包含了三個FUNCTION CALL 茲簡易說明如下(程式的寫法可參考sample目錄下的程式)

 

(1) SajetTransStart用來分配Driver的資源當程式啟動後須執行這個Function一次

(2) SajetTransClose用來釋放driver所佔用的資源當有呼叫過TransStart這個function之後則必須在程式結束前呼叫這個function釋放資源

(3) SajetTransData傳送定義好的資料給MES系統  

 

2.3 Dirver說明- SajetTransStart

這個function主要功用是Create Driver會使用到的相關資源這個function只須於一開始呼叫過一次即可當重覆呼叫時driver會忽略而不處理當執行成功後即可透過SajetTransData這個function傳送資料給MES系統

 

#其宣告如下

function SajetTransStart : boolean; stdcall;

 

#傳入變數:

 

 

#傳回結果:

型態為Boolean,當成功執行本function,即會回傳true值,當有下列情況時,會回傳false值,

(1)   啟動driver有發生exception

 

 

                    

2.4 Dirver說明- SajetTransClose   

這個function主要功用用於釋放driver所佔用的資源,當程式要結束執行時,須呼叫這個function來釋放資源。

 

#其宣告如下

function SajetTransClose : boolean; stdcall;

 

#傳入變數:

 

#傳回結果:

型態為Boolean,當成功執行本function,即會回傳true值,當有下列情況時,會回傳false值,

(1)   有發生exception

 

 

             

                    

2.5 Dirver說明- SendSajetDriver   

user要傳送資料給MES系統,即可呼叫這個function

 

#其宣告如下

function SajetTransData(f_iCommandNo : integer;f_pData,f_pLen : pointer) : boolean; stdcall;

 

#傳入變數

f_iCommandNo型態為integer指定此次資料所要執行的工作相關說明請參閱Dirver說明-Function COMMAND

 

f_pData型態為pointer,其值為一連續記憶體空間(例如ARRAY OF BYTE)的起始位置, USER傳送一字串資料給MES系統,則依序將值填入到這個記憶體空間,當執行完FUNCTION後,MES系統也會將要回傳的資料放到這個記憶體空間,這個記憶體空間的可為動態陣列或固定陣列,但最小長度須為100,以讓MES系統存放回傳訊息

 

f_pLen型態為integerpointer用來儲放f_pData內資料的有效長度當要執行function將要傳送資料的長度存放到此pointer所指定的 integer變數當執行結束後pointer所指定的interger會存放回傳資料的有效長度可根據此長度取得回得回傳訊息。

 

#傳回結果:

型態為Boolean,當成功執行本function,即會回傳true值,當有下列情況時,會回傳false值,

(1)   driver沒有成功啟動時

(2)   傳入的值不合法

(3)   執行function有發生exception

 

f_pData中會存放MES回傳的訊息,而f_pLen中會存放回傳訊息的有效長度,可依據這兩個數值得到回傳訊息。


blob.png

3. 連線軟體流程圖

每個Function TestATE工作站必須是Window base的程式介面 並且要開放出輸入介面

 

1.     提供作業員輸入工號。

2.     提供作業員輸入產品序號。

 

ATE須有一組測試機台(PC,需網卡連接SFC網路),條碼槍(如確定序號可自動讀入則不須條碼槍)一支。

 

軟體編寫流程如下:

 

 


3.1 流程說明:

(1)輸入員工編號:於ATE上輸入作業員工號。系統會依據工號檢查是否正確,如不正確會要求重新輸入。

(2)呼叫API:設定 CMD = 1Call API,格式如下。

(3)輸入產品序號:輸入目前進行作業的機台序號。系統會依據序號檢查流程是否正確,如不正確會要求重新輸入。

(4)呼叫API:設定 CMD = 2Call API,格式如下。

(5)ATE啟動測試程序

(6)呼叫API:設定 CMD = 3Call API,格式如下。


4. Protocal Format of f_pData paramenter

4.1 API 參數格式

function SajetTransData(f_iCommandNo : integer;f_pData,f_pLen : pointer) : boolean; stdcall;

 

當測試程式Call API的時候要傳送資料給MES系統時需要三個參數f_iCommandNof_pDataf_pLen

 

MES系統即會依據COMMAND NO(f_iCommandNo)來處理工作及進行資料(f_pData)的解碼f_pData的資料必須以”;”當結尾f_pData的資料COMMAND NO的關係茲說明如下

 

 

 

4.2 f_iCommandNo = 1

No

f_pData

f_pLen

Remark

1

Emp No;

?

(檢查EMP NO)

ExSajetTransData(1,f_pData,9);

              f_pData=”SAJET001;”

 

API(CMD=1)是用來檢查員工編號是否正確, 結果是OK表示檢查成功, 可以繼續下一個動作。

 

Return Status From MES

No

f_pData

f_pLen

Remark

1

OK;

3


1

NG;[EC201] EMP NO NG;

21

Emp No Error

1

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’, f_pLen=3

    Exreturn f_pData =‘NG;[EC201] EMP NO NG;’, f_pLen=21

Exreturn f_pData =‘NG;[EC101] CALL DBA;’, f_pLen=20

 


4.3 f_iCommandNo = 2

No

f_pData

f_pLen

Remark

2

SN;

?

(檢查產品序號)

ExSajetTransData(2,f_pData,16);

       f_pData=” LiteOnPower0001;”

 

API(CMD=2)是用來檢查序號以及檢驗流程, 結果是OK表示檢查成功, 可以繼續下一個動作。當回應是OK的時候, API可以一並回應與client端協議之訊息。

 

例如:MAC燒錄站以這個API(CMD=2), 可以檢查序號及流程, 並取得分配的MAC以及OS版本, 如下:

 

f_pData=’SN1234567890;’

 

假設檢查OK, 系統會回傳

 

f_pData=’OK;001492008DC9 6e6c3052 764c2f32 77777737 5c2d4e6c;OSXX;

 

其中001492…. 5c2d4e6c表示MAC, OSXX表示OS版本。

 

Return Status From MES

No

f_pData

f_pLen

Remark

2

OK;

3


2

NG;[EC202] SN NG;

17

SN Error

2

NG;[EC999] Route NG:XXXXX

20+Len(XXXXX)

應該到XXXXX

2

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’, f_pLen=3

    Exreturn f_pData=‘NG;[EC202] SN NG;’, f_pLen=17

Exreturn f_pData=‘NG;[EC101] CALL DBA;’, f_pLen=20

 

 


4.4 f_iCommandNo = 3

No

f_pData

f_pLen

Remark

3

EMP;SN;Result;

Error Code1;Error Code2…;

?

(記錄OK/NG)

Ex1SajetTransData(3,f_pData,28);

       f_pData=”SAJET001;LiteOnPower0001;OK;”

   Ex2SajetTransData(3,f_pData,34);

       f_pData=”SAJET001;LiteOnPower0001;NG;EC001;”

Ex2SajetTransData(3,f_pData,40);

       f_pData=”SAJET001;LiteOnPower0001;NG;EC001;EC002;”

 

API(CMD=3)是用來記錄當站的測試結果, 結果只能是OK或是NG, 檢驗結果如果是NG, 需要附帶不良代碼。多個不良代碼須以’;’隔開。不良代碼需要先由DataCenter定義。

 

 

Return Status From MES

No

f_pData

f_pLen

Remark

3

OK;

3


3

NG;[EC201] EMP NO NG;

21

EMP Error

3

NG;[EC202] SN NG;

17

SN Error

3

NG;[EC203] ERROR CODE NG;

25

Defect Code Error

3

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’, f_pLen=3

    Exreturn f_pData=‘NG;[EC201] EMP NO NG;’, f_pLen=21

    Exreturn f_pData=‘NG;[EC202] SN NG;’, f_pLen=17

Exreturn f_pData=‘NG;[EC202] ERROR CODE NG;’, f_pLen=25

Exreturn f_pData=‘NG;[EC101] CALL DBA;’, f_pLen=20


4.5 f_iCommandNo = 4

No

f_pData

f_pLen

Remark

4

EMP;SN;RESULT;

?

記錄檢驗結果(非量測值)

Ex1SajetTransData(4,f_pData,72);

f_pData=”SAJET001;LiteOnPower0001;Play Wave:P;Display:P;SD/MMC:P;LED:P;Buttons:P;”

 

 

API(CMD=4)是用來記錄非量測值的測試結果, 測試結果會以memo形式被記錄在數據庫的欄位中。f_pLen長度勿超過255, 如超過255請分多次呼叫本API

 

Return Status From MES

No

f_pData

f_pLen

Remark

4

OK;

3


4

NG;[EC201] EMP NO NG;

21

EMP Error

4

NG;[EC202] SN NG;

17

SN Error

4

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’ f_pLen=3

    Exreturn f_pData=‘NG;[EC201] EMP NO NG;’, f_pLen=21

    Exreturn f_pData=‘NG;[EC202] SN NG;’, f_pLen=17

Exreturn f_pData=‘NG;[EC101] CALL DBA;’, f_pLen=20

 


4.6 f_iCommandNo = 5

No

f_pData

f_pLen

Remark

4

EMP;SN;RESULT;

?

記錄檢驗結果(量測值)

Ex1SajetTransData(5,f_pData,78);

f_pData=”SAJET001;LiteOnPower0001;1st ID:19;1st CNO:41; 2nd ID:3; 2nd CNO:36;3rd ID:15;”

 

 

API(CMD=5)是用來記錄量測值的測試結果, 各項良測值必須是數字, 準備做管制圖統計分析。不同測試項目以’;’隔開, 測試項目與測試值中間是’:’。需要先由DataCenter定義測試項目。

 

Return Status From MES

No

f_pData

f_pLen

Remark

5

OK;

3


5

NG;[EC201] EMP NO NG;

21

EMP Error

5

NG;[EC202] SN NG;

17

SN Error

5

NG;[EC301] TEST ITEM NG;

24

Test Item NG

5

NG;[EC302] TEST VALUE NG;

25

Test Value NG

5

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’, f_pLen=3

    Exreturn f_pData=‘NG;[EC201] EMP NO NG;’, f_pLen=21

    Exreturn f_pData=‘NG;[EC202] SN NG;’, f_pLen=17

       Exreturn f_pData=‘NG;[EC301] TEST ITEM NG;’, f_pLen=24

       Exreturn f_pData=‘NG;[EC302] TEST VALUE NG;’, f_pLen=25

Exreturn f_pData=‘NG;[EC101] CALL DBA;’, f_pLen=20

 


4.7 f_iCommandNo = 6

No

f_pData

f_pLen

Remark

4

EMP;SN;RESULT;

?

記錄檢驗結果(量測值)

Ex1SajetTransData(5,f_pData,67);

f_pData=”SAJET001;LiteOnPower0001;LOOP:300;RESULT:PASS;2nd CNO:36;3rd ID:15;”

 

 

API(CMD=6)是用來記錄非量測值但是希望記錄各項的檢驗結果, 各項檢驗的結果內容不限定是數字(長度Varchar2:15)。不同測試項目以’;’隔開, 測試項目與測試值中間是’:’。需要先由DataCenter定義檢驗項目。

 

Return Status From MES

No

f_pData

f_pLen

Remark

6

OK;

3


6

NG;[EC201] EMP NO NG;

21

EMP Error

6

NG;[EC202] SN NG;

17

SN Error

6

NG;[EC301] TEST ITEM NG;

24

Test Item NG

6

NG;[EC302] TEST VALUE NG;

25

Test Value NG

6

NG;[EC101] CALL DBA;

20

API time out

    Exreturn f_pData=’OK;’, f_pLen=3

    Exreturn f_pData=‘NG;[EC201] EMP NO NG;’, f_pLen=21

    Exreturn f_pData=‘NG;[EC202] SN NG;’, f_pLen=17

       Exreturn f_pData=‘NG;[EC301] TEST ITEM NG;’, f_pLen=24

       Exreturn f_pData=‘NG;[EC302] TEST VALUE NG;’, f_pLen=25

Exreturn f_pData=‘NG;[EC101] CALL DBA;’, f_pLen=20

 

 

 

标签: MES 智能制造
电话咨询
邮件咨询
在线地图
QQ客服