指令集總覽 html
一、General 前端
1)、Comment:: 註釋指令。git
2)、Image Window: 建立新的圖像窗口。 True: 取像以後更新圖像窗口顯示;False: 有新圖像時不更新圖像窗口。取像成功返回true。數組
3)、Return: 流程指令」返回「。從子程序插入一個返回。服務器
4)、Subrotine: 建立一個子程序。網絡
5)、Test: 評估聲明。dom
二、Array: Boolean(布爾數組指令)異步
同 "Array: Number(整型數組指令)"tcp
三、Array: Line(直線數組指令)ide
同 "Array: Number(整型數組指令)"
四、Array: Number(整型數組指令)
1)、AbsoluteValue: 求絕對值,array = |array|。
2)、Add / Subtract / Multiply: 兩個數組求和 / 差 / 積,array = array_1 (+/-/*) array_2。
3)、Append: 將指定的元素添加到數組的結尾。
4)、AppendRep: 將指定的元素在數組結尾添加n次。
5)、ClipHigh / ClipLow: 將數組中>= / <=threshold的值替換成above。
6)、Concatenate: 將兩個數組合並。
7)、ConstMulAdd: array = intput_array * mulConst + addConst。
8)、CopyArray: 將輸入數組的所有或部分元素複製到一個新的數組。
9)、Correlate: 關聯兩個數字數組並輸出生成的Pearson相關係數。 若是兩個數組的大小不一樣,則使用較小數組的大小。
Pearson相關係數 (Pearson Correlation Coefficient)是用來衡量兩個數據集合是否在一條線上面,它用來衡量定距變量間的線性關係。其範圍是-1~1,0表示無相關性或出錯。
Pearson相關係數使用公式以下:
其中,X是array_1的值,Y是array_2的值。帶上橫線的X和Y分別是數組的平均值。
10)、Create: 建立一個含有n個元素的新數組並初始化爲0。
11)、CreateInf: 用傳入的值建立一個新數組。
12)、CreateRep: 建立一個含有n個元素的新數組並所有初始化爲指定的值。
13)、Difference: 將array_1中含有但array_2中沒有的元素輸出到新的數組中。
14)、Erase: 刪除指定索引處的元素。
15)、EraseRange: 刪除指定索引範圍內的元素。
16)、Extrema: 返回輸入數組中的最大值和最小值以及對應的數組索引。
17)、GetAt / SetAt: 獲取 / 設定指定索引處元素的值。
18)、GetRange: 輸出是一個新的數組,它是輸入數組的子集,包含從索引開始的Count個元素。
包含索引處的元素。 若是請求的元素太多,則僅返回可用的數字,而不發出錯誤信號。 換句話說,若是第一個數組的大小小於(index + count),則生成的數組可能小於count,而且函數返回時沒有錯誤。
19)、SetRange: 將指定索引範圍內的元素設爲常量。
wrap選項容許設置的值範圍離開數組的末尾並環繞到數組的開頭,就像數組是圓形而不是線性同樣。 例如,這有助於抑制找到的最大麴率(使用Array:Number:Maximum),以便在對象上找到其餘最大值(角)。
19)、Insert: 在指定索引出插入新值,並將索引後邊的元素後移。
20)、InsertRep: 在指定索引處插入n個元素,並所有賦以特定的值。
21)、Maxinum / Mininum / MeanAndVariance: 返回數組中元素的最大值、最小值、均值、方差和標準差。
23)、Resize: 將數組長度調整爲特定的長度,根據須要刪除或增長元素。
24)、Reverse: 將數組中的元素倒序輸出。
25)、Size: 返回數組的長度。
26)、Smooth: 平滑的輸入數組值,近似於高斯濾波器形狀。(啥意思??沒看懂)
27)、Sort: 將數組中的元素按升序(默認)或降序進行排序。
29)、Threshold: 將數組中>=threshold的值替換成above,其餘的替換成below。
30)、ThresholdBand: 見數組中>=high threshold的值替換成above,<low threshold的值替換成below,其餘的替換成between。
五、Array: Point(點數組指令)
1)、Remove Isolated Outliers: 刪除不屬於點之間最大距離度量集羣的點。
此函數計算點數組中每一個輸入點與其先後兩個近鄰點之間的最大距離。而後基於「容差」將距離值聚類成組。不在最大集羣(組)中的輸入點將被刪除並放入輸出「bad points」數組中。 剩餘的點在「good points」輸出數組中返回。 這樣能夠很好地去除輸入點數組中的少許的孤立「噪聲」點,但若是存在許多噪聲點則效果不佳,由於噪聲點可能造成最大的簇(組)。
其餘同 "Array: Number(整型數組指令)"
六、Array: String(字符串數組指令)
同 "Array: Number(整型數組指令)"
七、Boolean指令集
1)、AND / OR / NOT: 與或非。
2)、SetBoolean: 將布爾值(輸出值)設定爲指定的值。
3)、XOR: 異或,若是奇數個輸入爲true,則爲true。
八、Geometric指令集
1)、ADToLn: 根據一個弧度和一個距離(原點到直線的距離)來肯定一條直線。
2)、AngleBisect: 計算在點point2處相交的兩條線之間的角平分線(從點point1到點point2的直線和從點point3到點point2的直線)。
3)、AngleNormalize: 將角度轉化成-π/2~π/2範圍內的角度。
4)、CircleBoundingBox: 求一個圓的外切正方形的四個角點(左上、左下、右上、右下)
5)、CircleInTriangle: 求三角形的內切圓。
6)、CircleLineIntersect: 求一條直線和一個圓的交點數量及角點座標。
7)、Convex Hull: 返回一個點集合的凸殼。
8)、Curvature: 求一段曲線(點集合表示)的曲率。
9)、Curvature-Hole: 求一段閉合曲線的曲率,並將設定曲率內的曲線用點標示出來。
10)、LnNormalize: 使直線的斜率強制轉化爲-1/2*Pi~+1/2*Pi之間,使之成爲一條標準直線。
11)、LnParallel: 過一點求一條直線的平行線。
12)、LnPerpendicular: 過一點求一條直線的垂線。
13)、LnsBisect: 求兩條直線的角平分線。
14)、LnSet: 把一條直線指定給一個線類型變量。
15)、LnsIntersection: 求兩條直線的交點。
16)、LnToAD: 把一條直線的斜率和距離提取出來。
a表示直線的角度;d表示原點到直線的距離,直線在原點上方爲負,下方爲正,如右圖所示。
經過a和d表示直線的方程:y=tan(a)*x+d/cos(a)。
17)、LnToLnAngle: 兩條直線的夾角。
18)、LnToLnDist: 兩條直線與第三條直線的兩個交點之間的距離也就是P1和P2之間的距離。
19)、MakeAnchor: 求一個點(P1)在一個方向上,相同距離(dist)的兩個對稱點(P1’/P1’’)。
20)、PtAverage: 求點集合中全部點的中點。
21)、PtAverageInf: 求給定的一系列點的中點。
22)、PtMiddle: 求兩個點的中點。
23)、PtRotate: 一個點繞另外一個點轉一個固定的角度,獲得旋轉以後的點。
24)、PtSet: 把一個點指定給一個點類型變量。
25)、PtsToBestAngle: 過兩點的直線與圖像X軸的夾角。
26)、PtsToBestCircle: 經過一個點數組集合中的點擬合一個圓。
27)、PtsToBestCircleInf: 經過給定的一系列點擬合一個圓。
28)、PtsToBestLine: 經過一個點數組集合中的點擬合一條直線。返回擬合所使用點的個數和數組、丟棄點的數組以及擬合的直線。
"percent outliers" -> 做爲異常值丟棄的點的百分比。
「proprecess" -> 若是爲true,請使用Remove Isolated Outliers做爲預處理。
"tolerance" -> 從理想點到最差可接受點的最大距離。必須大於零。
29)、PtsToBestLnInf: 經過給定的一系列點擬合一條直線。
30)、PtsToBestLnMaxOut: 經過一個點數組集合中的點擬合一條直線。容許丟棄指定百分比的異常值以改善直線擬合。返回擬合所使用點的個數、丟棄點的數組、直線的最近和最遠點以及擬合的直線。
31)、PtsToLnDist: 數組內的點到直線的距離。
32)、PtsToLnDistInf: 指定的一系列點到直線的距離。
33)、PtsToPtsDist: 一組點到另外一組點的距離。
34)、PtToLnDist: 一個點到直線的距離。
」measurement point「 -> 垂足的座標。
「measurement line」 -> 垂線。
35)、PtToPtAngleDist: 求兩點之間的距離以及兩點擬合的直線與X軸的夾角。
36)、PtToPtDist: 一個點到另一個點的距離、X的距離和Y的距離。
37)、PtToPtsDist: 一個點到一組點的距離、X的距離和Y的距離。
38)、PtToPtsDistMinMax: 一個點到一組點的距離以及最小最大距離。
39)、RakeLineFit: 經過Rake ROI中的點擬合一條直線。
」linear tolerance" -> 從理想點到最差可接受點的最大距離,即線性公差值。必須大於零。
"angular tolerance" -> 從理想點到最差可接受點的最大角度,即角度公差值。必須大於零。
此函數進行三次傳遞以細化異常值的刪除。
第一次檢查一個點與其先後兩個近鄰點之間的距離。若是距離大於線性公差值,則移除該點。這適用於孤立的「噪聲」點,但不適用於分組的異常點。
第二次檢查第一個點和陣列中每一個連續點之間的角度。若是角度大於角度公差值,則移除該點。前兩點必須是位於線上的「好」的數據。若是組很小,而且大多數點位於指望的線上,則能夠更好地刪除組合在一塊兒的異常值。
第三次檢查最後一個點和每一個連續的前一個點之間的角度,向後工做。若是角度大於角度公差值,則移除該點。最後兩點必須是位於線上的「好」的數據。與第二次同樣,若是組小,而且大多數點位於指望的線上,則能夠更有效地去除組合在一塊兒的異常值。
該公式適用於孤立的「噪聲」點,也適用於小組中的點,這些點造成少數採樣點。組越接近指望的線,角度公差越不可能將它們所有移除(角度變小)。應移除造成深、窄凹口或鑿孔的點。可能沒法徹底去除寬而淺的凹口。
40)、PtToXY: 求一個點的X/Y座標。
41)、TwoPtsToLn: 用兩個點擬合一條直線。
42)、XYToPt: 用X/Y座標擬合一個點。
九、IO: Annotations(圖像顯示指令集)
1)、Circle / Circles: 在圖像中畫一個圓 / 一系列等半徑的圓。
2)、Line / Line Segment: 在圖像中畫一條直線 / 線段。
3)、Pixels: 在圖像中把一些像素點標示出來。
4)、Point / Points: 在圖像中畫一個 / 組點。
5)、Polyline: 在圖像中畫一條多線段(折線)。
6)、Rectangle: 在圖像中畫一個矩形。
7)、Text: 在圖像中顯示一段文本。
十、IO: Calibration
1)、Calibrate Using a Grid: 使用網格從新校準。該指令容許從自定義前端程序執行目標或網格校準。之前只能從GUI界面得到網格或目標校準。
從GUI界面設定以下:
在程序中執行網格校準:
2)、Calibrate Using Point Arrays: 使用一系列點校準。分配校準系統。選擇4個輸入點,並提供相應的世界座標。您應該已經在圖像窗口中識別或建立了四個點。
3)、Calibrate Using Points: 使用輸入點進行校準。分配校準系統。選擇4個輸入點,並提供相應的世界座標。您應該已經在圖像窗口中識別或建立了四個點。在程序窗口中,能夠將點拖動到校準輸入上。
4)、Calibrate Using Transformation Values: 使用轉換值進行校準。分配校準系統,提供軸座標原點和比例因子(乘數)。
5)、Load Calibration: 加載之前保存的校準數據文件。能夠經過指令或從【圖像窗口選項(雙擊圖像窗口打開)】->【Calibration】導出(保存)校準數據。
注:此校準數據只在使用相同的相機、相同的鏡頭、相同的相機位置以及與目標物體相同的距離時有效。若是這些因素中任意一個發生變化,則校準數據無效。
6)、Pixels To World: 將點位置從像素座標轉化爲世界座標(或校準座標)。
7)、Save Calibration: 將校準數據保存到文件中。
8)、Set Identity Calibration: 設置1對1(標識)校準,此功能將測量值返回到像素值,」取消校準「校準系統。
9)、World To Pixels: 將點位置從世界座標(校準座標)轉換爲像素座標。
十一、IO: Camera(相機參數設定指令集)
1)、Flush acquired images: 清除全部採集圖像的相機緩衝區。
2)、Get bool / number / string feature: 返回相機的布爾 / 數字 / 字符串特徵。返回[Boolean]類型的相機功能的當前值。可用功能及其值由相機制造商定義。(沒懂什麼意思,應該是相機自己的參數)
3)、Set bool / number / string feature: 設置相機的布爾 / 數字 / 字符串特徵。
4)、Get camera count: 檢測系統內鏈接相機的個數。
5)、Get missed frame count: 返回自當前採集開始以來丟失的幀數。
6)、Get number of acquired lines: 返回相機獲取的行數。此指令適用於線掃相機,用以返回在可變幀模式下獲取的行數。
7)、Halt camera ACQ: 中止相機的採集。
8)、Read register: 讀取相機寄存器。
9)、Send command: 往相機寫入一個命令字符串。
10)、Set Brightness: 設置白平衡。範圍一般是0-100,但實際值由相機制造商定義。
該指令適用於PIC-2592相機。 若是Sapera網絡驅動程序處於「使用Teledyne DALSA接口」模式,此指令適用於Genie系列相機,但不適用於Genie TS系列或其餘相機。
11)、Set Lut: 設置相機查找表(Look-Up Table)。
12)、Set Shutter: 設置曝光時間。
13)、Set Trigger Delay: 設置抓取部件傳感器觸發和相機觸發信號發出之間的延時。
14)、Write register: 往相機寄存器裏邊寫值。
十二、IO: ControlLogix
ControlLogix系統是基於機架的系統,能夠提供對使用順序控制、過程控制、運動控制和驅動控制的控制系統進行組態的選項,還可提供通訊I/O功能。
注:必須預先在【Options】->【IO】 - > 【Control Logix】中定義控制器和句柄變量。
1)、Read / Write: 從ControlLogix控制器讀取 / 寫入單個值。 不適用於字符串類型。 數字被解釋爲字節,字,雙字或實數值。
2)、Read Array / Write Array: 從控制器中讀取 / 寫入一組值。 不適用於長度前綴的字符串類型。 數字被解釋爲字節,字,雙字或實數值。
3)、Read Bool / Write Bool: 從控制器讀取 / 寫入一個布爾值。
4)、Read Bool Array / Write Bool Array: 從控制器讀取 / 寫入一組布爾值。
5)、Read String / Write String: 從控制器讀取 / 寫入單個字符串。
6)、Read String Array / write String Array: 從控制器讀取 / 寫入一個字符串數組。
1三、IO: Digital Input(IO輸入信號指令集)
1)、Get input IO count: 獲取IO輸入口的數量。
2)、Read: 讀取一個IO輸入口的狀態。
3)、Read Array: 讀取一組IO輸入口的狀態。
4)、Read Decimal: 一次讀取全部IO輸入口的狀態。最大數字通道數爲32。
5)、Wait For Pulse: 等待一個IO輸入口的脈衝信號。
6)、Wait For State: 等待一個IO輸入口的常態信號。
1四、IO: Digital Output(IO輸出信號指令集)
1)、Advanced IO: Enqueue Decision: 排列高級I/O(AIO)決策。 必須存在並啓用高級I/O功能。 高級I/O是VA21,VA31,VA40,VA41和NetSight II-MCA的硬件功能。 不適用於其餘硬件。
Parameters: "Decision" -> Pass(0),Fail(1),Recycle(2)。
若是可用,則使用IFC Camera Configurator配置高級I/O硬件和時序。 參數保存在Camera Configuration文件中。
2)、Advanced IO: Initialize Queue: 排列初始I/O決策。 必須存在並啓用高級I/O功能。 高級I/O是VA21,VA31,VA40,VA41和NetSight II-MCA的硬件功能。不適用於其餘硬件。
若是存在,則使用IFC Camera Configurator配置高級I/O硬件和時序。 參數保存在Camera Configuration文件中。
3)、Async Pulse: 輸出異步脈衝。將輸出「channel」設置爲和「state」相反。等待「time」時間(以ms爲單位),而後將輸出「channel」設置爲「state」。Sherlock執行Async Pulse以後的下一個指令,無需等待此指令完成或脈衝執行。
4)、Get output IO Count: 獲取IO輸出口的個數。
5)、Pulse: 將輸出「channel」設置爲和「state」相反。等待「time」時間(以ms爲單位),而後將輸出「channel」設置爲「state」。Sherlock執行Pulse以後的下一個指令以前需等待脈衝指令完成。
6)、Read: 讀取IO輸出口的狀態。
7)、Read Array: 一次性讀取多個IO輸出口的狀態。
對於channels數組中索引N處設置爲1(True)的任何元素,讀取相應的數字輸出通道N,而且將該通道的值寫入到索引N處的states數組中。
對於channels數組中設置爲0(False)的元素,states數組中的相應位置會被設置爲零(False)。 應忽略這些位置,由於它們不反映相應輸出通道的狀態。
8)、Read Decimal: 一次性讀取全部IO輸出口的狀態(最大爲32通道)。
9)、Schedule Async Pulse: 安排一個異步脈衝輸出。
將channel設置爲與state相反, 等待delay(單位ms)時長後將channel通道設置爲state,再等待time(單位ms)時長後將channel設置爲與state相反。Sherlock執行下一個語句時不用等待脈衝輸出發生。
10)、Write: 將state寫入到輸出channel中。
11)、Write Array: 一次性寫入多個IO輸出口的狀態。
對於在channels數組中索引N處設置爲1(True)的任何元素,將數字輸出通道N寫入到索引N處的States數組中對應值的狀態。
例如:下列的數組將0寫入通道2,1寫入通道3,通道0和1未寫入值,由於’channels'值爲0。
12)、Write Decimal: 一次性寫入全部數字輸出口(最大爲32輸出通道)。
‘value’ -> 寫入到數字輸出口的10進制(或16進制)數。該值被從新解釋爲一個二進制位模式,並寫入到數字輸出通道中。lsb(最低有效位)始終是輸出通道0。
1五、EtherNet/IP
EtherNet/IP是由RockWell開發的工業以太網通信協定,是通用工業協定(CIP)的一部分。IP是Industrial Protocol(工業協議)的簡稱,和網際協議不要緊。
注:在執行指令或運行一次(至少一次)以前,不會初始化EthernetIP通訊。 若是指令還沒有執行,PLC軟件將沒法訪問運行Sherlock的系統。 或者,您能夠在啓動Sherlock時自動啓動EthernetIP通訊服務器。 在如下路徑進行設置:菜單欄【Options】->【Application】->【Advanved】->【EthernetIP: start EthernetIP server on Sherlock startup】。
1)、Read: 讀取一組數值。
2)、Write: 寫入一組數值。
1六、IO:File(文檔指令集)
1)、Append: 向文檔內追加內容。下次寫入不會覆蓋掉以前的內容。
2)、Close: 關閉一個打開的文檔。
3)、Open: 打開一個文檔。
4)、Read: 讀取文檔中(已打開)的內容。
5)、Write: 往文檔中寫入內容。下次寫入會把以前的覆蓋掉。
1七、GE Fanuc
GE(通用電氣公司,GeneralElectricCompany)和FANUC(日本發那科公司)合資企業,目前在中國主要銷售PLC(90-70 / 90-30)和軟件(Intellution,IFix/Fix)。
注:必須先在【Options】->【IO】 - > 【GE Fanuc】菜單中定義控制器。
1)、Read: 從控制器讀取單個數值。
2)、Read Bool: 從控制器讀取單個布爾值。
3)、Write: 往控制器寫入單個數值。
4)、Write Bool: 往控制器寫入單個布爾值。
1八、IO:Image Window(圖像窗口指令集)
1)、Clear Image Log: 清除圖像日誌或序列。
2)、Copy to Cipboard: 複製圖像至剪切板。
「graphics」 -> 0: 只複製圖像,不帶圖形和註釋;1: 複製帶有圖形和註釋的圖像。
3)、Enable image Logging: 啓用 / 禁用圖像日誌。
圖像參數在圖像窗口屬性裏定義,經過該指令沒法修改其它參數。
4)、Get FTP Image Logging Status: 獲取圖像窗口的FTP日誌記錄狀態。
此函數在調用時報告FTP子系統的狀態(由於FTP客戶端獨立於程序 [ivs] 執行器工做),但應足夠準確以捕獲最重要的問題。
「tfp log active」 -> 若是此窗口啓用了FTP圖像日誌記錄,則爲TRUE。
「error」 -> 上一條FTP錯誤說明。
「failed upload」 -> 上一個上傳操做失敗的文件(若是有)。
「queze size」 -> 排隊等待上傳的圖像數量,若是沒有可用信息則爲-1。
「last queued」 -> File last queued。文件最後隊列。
「response」 -> FTP服務器響應(若是可用)。
「last result」 -> 成功返回TRUE,不然返回False。
5)、Get Image Attributes: 獲取圖像大小(像素)及每像素的字節數。
6)、Get Image Source: 輸出描述所選圖像窗口的圖像源的字符串。
7)、Load Image: 加載一個圖像文件。
8)、Log Image: 記錄圖像,或者將圖像保存到圖像文件的「圖像日誌」序列。
注:推薦不要使用和操做系統相同的驅動器分區(一般是C:驅動器)來記錄圖像。Windows NTFS文件系統中的缺陷會致使在不斷將文件(如映像)寫入操做系統分區時致使引導扇區損壞。
9)、Refresh: 刷新圖像窗口。
10)、Reset Image Log: 復位圖像日誌的日誌索引,將四位數的日誌索引設置爲零。(可選)能夠刷新圖像隊列。
11)、Save Image: 保存圖像到指定文件。
12)、Save Image with Graphics: 將帶有圖形和註釋的圖像保存到文件中。
13)、Save Image with Graphics to Buffer: 將帶有覆蓋圖形的給定圖像窗口保存到「臨時」緩衝區。
14)、Set Camera: 爲圖像窗口指定相機(若是採集硬件支持多個相機的話)。
15)、Set External Trigger: 設置相機爲外部觸發模式。
16)、Set Palette: 設置單色圖像顯示的調色板方法。
選擇預約義的調色板或可選的自定義調色板。自定義調色板方法須要包含一個256個元素的輸入素組,不然會發生錯誤。該數組的大小應精確爲256個元素,但若是更大,則忽略255以後的索引並生成警告。較小的數組會產生錯誤。除Custom以外的全部方法都會忽略調色板輸入數組。
17)、Start Camera Acquisition: 從所選的活動圖像源開始採集。
1九、IO: Keyboard
1)、Test any key: 測試任意按鍵。若是在執行此指令期間按下任意鍵(綁定或預約義的快捷鍵/加速鍵除外),則輸出"keypress"爲真。若是"keypress"爲false,則輸出鍵碼"keycode"爲false。
2)、Test one key (number) / Test one key (string): 測試特定鍵。若是在執行此指令期間按下與給定鍵碼匹配的鍵,則輸出爲true。KeyCode是Windows虛擬鍵碼。
20、IO: Melsec FX/Q/Tcp
MELSECNET是三菱爲其產品開發的專用數據鏈路系統。
1)、MC FX serial read word: 使用串行協議從設備讀取字。
該指令使用格式1和4實現Melsec-FX協議。
必須正確配置PC的串行端口設置(波特率,數據大小,奇偶校驗)以匹配Melsec PLC設置。 而後必須將該指令中的其餘參數配置爲與Melsec PLC一致。
2)、MC FX serial write word: 使用串行協議從設備寫入字。
該指令使用格式1和4實現Melsec-FX協議。
必須正確配置PC的串行端口設置(波特率,數據大小,奇偶校驗)以匹配Melsec PLC設置。 而後必須將該指令中的其餘參數配置爲與Melsec PLC一致。
3)、MC Q serial read word: 使用串行協議從設備讀取字。
該指令使用幀4C和格式5(二進制通訊)實現Melsec-Q協議。
必須正確配置PC的串行端口設置(波特率,數據大小,奇偶校驗)以匹配Melsec PLC設置。 而後必須將該指令中的其餘參數配置爲與Melsec PLC一致。
4)、MC Q serial write word: 使用串行協議從設備寫入字。
該指令使用幀4C和格式5(二進制通訊)實現Melsec-Q協議。
必須正確配置PC的串行端口設置(波特率,數據大小,奇偶校驗)以匹配Melsec PLC設置。 而後必須將該指令中的其餘參數配置爲與Melsec PLC一致。
5)、MC tcp read word: 使用TCP/IP協議從設備讀取字。
6)、MC tcp write word: 使用TCP/IP協議從設備寫入字。
2一、IO: Modbus Master/Slave
注:必須如今【Options】->【IO】->【Modbus】中定義Modbus設備。
1)、Read Multiple Discretes: 讀取多個離散的輸入或輸出。
2)、Read Multiple Registers: 從多個寄存器讀取值。
3)、Read single Discrete: 讀取單個離散的輸入或輸出。
4)、Read Single Register: 從寄存器讀取值。
5)、Write Multiple Ciols: 將值數組寫入多個線圈。(線圈(Coil)是個什麼鬼????)
6)、Write Multiple Registers: 將值數組寫入順序寄存器。
7)、Write Single Coil: 將值寫入單個線圈。
8)、Write Single Register: 將值寫入寄存器。
9)、Read Discrete: 讀取單個離散的輸入或輸出。
10)、Read Register: 從寄存器讀取值。
11)、Write Discrete: 寫入單個離散輸出。
12)、Write Register: 將值寫入寄存器。
2二、IO: Omron Ethernet/Host Link
1)、UDP read word: 使用UDP協議從設備讀取字。該指令從Omron PLC上的數據區(DM區)一次讀取1到70個字值。
注:1) 必須先在【Options】->【IO】->【Udp/Ip】中定義以太網鏈接。
2) 在執行指令或運行一次(至少一次)以前,Profinet通訊不會初始化。 若是指令還沒有執行,PLC軟件將沒法訪問運行Sherlock的系統。 或者,您能夠在啓動Sherlock時自動啓動EthernetIP通訊服務器。 在如下路徑進行設置:菜單欄【Options】->【Application】->【Advanved】->【EthernetIP: start EthernetIP server on Sherlock startup】。
2)、UDP write word: 使用UDP協議從設備寫入字。
3)、Serial read word: 使用串行協議從設備讀取字。該指令從Omron PLC上的數據區(DM區)一次讀取1到29個字值。
必須正確配置PC的串行端口設置(波特率,數據大小,奇偶校驗)以匹配Omron PLC設置。 而後必須將該指令中的其餘參數配置爲與Omron PLC一致。
4)、Serial write word: 使用串行協議從設備寫入字。
2三、IO: Profinet
PROFINET是由PROFIBUS國際組織(PROFIBUS International,PI)推出的新一代基於工業以太網技術的自動化總線標準。
注:1) 在執行指令或運行一次(至少一次)以前,Profinet通訊不會初始化。 若是指令還沒有執行,PLC軟件將沒法訪問運行Sherlock的系統。 或者,您能夠在啓動Sherlock時自動啓動Profinet通訊服務器。 在如下路徑進行設置:菜單欄【Options】->【Application】->【Advanved】->【Profinet: start Profinet server on Sherlock startup】。
2) Profinet通訊僅適用於32位Windows環境,而不適用於64位環境。
1)、Read: 讀取一組數值(數值數組)。
要從PLC輸出標籤表中讀取值,須要計算GEVA空間中的正確偏移量(從256開始)。 使用標記索引減去256(GEVA起始地址)除以元素類型中的字節數。
2)、Read String: 讀取已知長度的ASCII字符串。
3)、Write: 寫入一組數值(數值數組)。
4)、Write String: 寫入一個ASCII字符串。
2四、IO: Reporter
1)、Clear: 清除報告。
2)、Print: 打印報告窗口。
2五、IO: Roi(ROI指令集)
1)、Check In Image: 肯定(檢查)ROI是否位於圖像窗口內。
2)、Enable Preprocessor: 在ROI中啓用或禁用預處理器。此IO指令的效果與檢查或清除ROI處理窗口中預處理器旁邊的複選框相同。該預處理器是禁用,並不是刪除。
3)、Get Bounding Box: 獲取ROI檢測框的邊框點和中心點。
4)、Get Coord: 獲取ROI(元素或角)的座標、旋轉角度和元素(角)的數量。
5)、Set Coord: 將ROI移動至指定的座標位置,若是refresh爲true則重繪。
注:使用過程當中應確保使用的座標有效,由於Sherlock並不會檢查座標的有效性。
特別地,對於矩形或者靶式(Rake)ROI,應確保左上角座標的x/y分別小於右下角座標的x/y,不然運行時會致使錯誤「沒法分配第一個圖像緩衝區以進行提取」。
6)、Get/Set Display Outline: 獲取 / 設定ROI屬性中display->outline的值(選擇爲true,不選擇爲false)。
7)、Get / Set Element Count: 獲取 / 設定複合ROI中元素(角點)的數量。
8)、Get / Set Rotation: 獲取 / 設定ROI的角度。
9)、Offset: 經過給定的偏移值移動ROI,若是refresh爲true則重繪。
10)、Rotate: 繞着輸入的中心點將ROI旋轉指定的角度。這會從新計算ROI的座標,但不會改變ROI的角度屬性。
注:從新計算座標會致使累積錯誤,不要在循環內或者連續旋轉中使用此指令。
11)、Set Alignment: 設定要使用的ROI對齊方式。能夠結合IfElse語句實如今不一樣狀況下選擇使用不一樣的對齊方式(Alignment),或者是否使用對齊方式。
12)、Set Interpolate: 在移動或旋轉ROI時啓用像素值的插值。啓用時,使用雙線性插值來估計像素值;禁用時,使用最鄰近插值來估計像素值。
13)、Set Pass/Fail Flag: 經過設置ROI的Pass(true) / Fail(False)標誌,來更改圖像窗口中顯示的ROI輪廓的顏色,便於在具備多個ROI的圖像中指出是哪一個ROI致使錯誤。這不會對程序形成其餘的影響。
2六、IO: Serial(串口通信指令集)
1)、Purge Buffer: 清除指定的緩衝區。
在嘗試使用串行端口以前,應使用此指令將串行端口的緩衝區清除或重置爲已知狀態。對於TX緩衝區,不傳輸已刪除的字符。
2)、Receive Characters: 從串行端口接收字符。 若是在超時以前未收到最小字符數,則超時。
3)、Receive Line: 從串行端口接受一行字符。接收字符,直到收到終止字符。若是在超時以前未收到終止字符,則超時。
4)、Send String: 將字符串發送到串行端口,以便當即傳輸。
注:使用'\ r'結束字符串以發送回車符,或'\ n'發送換行符。
2七、IO: SPC
1)、Get SPC values: 無輸入參數,輸出參數以下:
"sample count" - SPC中的零件數量或檢驗樣本數量。
"min / avg / max / std / 3std" - 最小值 / 平均值 / 最大值 / 標準差 / 3*標準差。
"range" - 範圍。
"Cp / Cpk / CpkLo / CpkHi / LoLim / HiLim" - 能力指數...
2)、Reset SPC: 復位或者清除SPC數據。
3)、Save SPC report: 保存SPC報告。
2八、IO: System(系統指令集)
1)、Beep: 聲卡或揚聲器發出嗶聲。
2)、DiskSpace: 返回指定磁盤剩餘空間和總空間大小。
3)、Exit Application: 關閉應用,可在關閉以前選擇保存程序。
4)、FileCopy: 將源文件複製到目標文件。
5)、FileDelete: 刪除指定的文件,即便指定的文件不存在也表示刪除成功,返回true。
6)、FileExists: 判斷指定的文件是否存在。
7)、FileMove: 將源文件移動到指定的目錄。
8)、FolderCreate / FolderDelete: 建立 / 刪除具備指定名稱的文件夾。
9)、Generate Engine Control Event: 建立一個在VEngine Control(IpeEngCtrl.dll)中調用的事件。該指令將建立按一個事件句柄,用於在VB / VC / C#程序中調用。
該指令將致使SherlockCOM引擎接口生成事件「UserProgramEvent(long nEventId)」。 在使用Sherlock COM引擎並處理此事件的自定義GUI應用程序中,將容許混合執行Sherlockprogram代碼和用戶VB / VC / C#/(等)代碼。
典型狀況是:
一、Sherlock程序執行IO: System -> UserProgramEvent;
二、SherlockCOM引擎建立UserProgramEvent COM事件;
三、UserProgramEvent COM事件被調用,用戶代碼被執行;
四、用戶完成對UserProgramEvent COM事件的處理,Sherlockresumes執行程序。
注:"UserProgramEvent(long nEventId)"僅在程序使用SherlockCOM引擎時有用。
10)、GetData / GetTime: 以dd/mm/yy和hh:mm:ss的格式返回本地日期和時間,時間採用24小時制。
11)、GetDataFormat / GetTimeFormat: 以指定格式返回本地日期 / 時間。
12)、GetEnv / SetEnv: 獲取 / 設定指定環境變量的值。
13)、GetEnvNames: 返回一個字符串數組,其每一個元素包含一個環境變量的名稱。
14)、GetEnvVars: 返回一個字符串數組,其每一個元素包含一對ENV_Var=String形式。
15)、GetMiliSecCount: 獲取系統毫秒計數。獲取雙精度毫秒計時器,用於計時檢測等。
16)、GetTimeDiff: 以ms爲單位返回當前時間和指定時間的時間差。
17)、InputBox: 顯示一個對話框,等待用戶輸入一個字符串並將其關閉,在此期間中止程序的執行。
18)、Log: 在應用程序日誌中記錄消息。
19)、Message Beep: 爲所選事件生成系統提示音。
20)、Message Box: 顯示一個對話框並等待用戶將其關閉,在此期間中止程序的執行,消息框爲應用程序模式。
按鈕返回值爲:1表示「OK」,2表示「取消」,3表示「停止」,4表示「重試」,5表示「忽略」,6表示「是」,7表示「否」。
button(s): OK、OK/Cancel、Retray/Cancel、Yes/No、Yes/No/Cancel、Abort/Retray/Ingore。
icon: Information、Warning、Question、Error。
default button: Button一、Button二、Button3。
注意:若是遠程執行包含消息框的程序,它將掛起,直到在服務器上按下按鈕。
21)、Pass Fail Dialog: 顯示經過/失敗對話框。
22)、Play Wav: 播放一個WAV文件(波形聲音文件)。
23)、Random: 隨機生成0.00~1.00減的任意數值。
24)、Set error handing strategy: 經過修改默認行爲來定義錯誤處理策略。
此指令旨在用於「執行錯誤」的子例程,並容許你定義要採起的操做。沒有此指令的默認行爲是在子例程結束時中止錯誤。
25)、Sleep: 程序暫停執行(休眠)指定的時間(ms)。
26)、Stopwatch Start: 在指定索引處啓動秒錶,若是秒錶在運行狀態則重啓。
注:在循環內放置秒錶開始將在循環的每次迭代時從新啓動秒錶計數。
27)、Stopwatch Stop: 在指定索引處關閉秒錶,若是秒錶不在運行則返回0。
2九、IO: Tcp/Ip
1)、Reveive Buffer: 從給定的鏈接處接受一些字符。TCP/IP設備或鏈接必須在Options->IO中預先定義。
2)、Receive Byte Array: 接收指定數量的字節數並將它們放入一個數字數組中。不在0~255範圍以內的值會被截去掉,256->0,257->1;負數會被轉換成正的,-1->255,-2->254。
注:若是預期的字節數在超時時間內到達,則以字節爲單位返回;bytes recvd返回接收的字節數(等於元素數);而且結果返回True。
若是預期字節數未在超時時間內到達,則字節爲空; bytes recvd返回已接收的字節數(若是有); 而且結果返回False。
3)、Receive Line: 從給定鏈接處接收一行字符,直到接收到目標字符串。
4)、Send Byte Array: 將整數數組做爲字節發送。不在0~255範圍以內的值會被截去掉。
注:只有在執行發送字節數組時還沒有創建服務器/客戶端鏈接時,結果纔會返回false。這意味着執行指令時應用程序沒必要時刻主動偵聽數組。
5)、Send Line: 發送一行字符至給定的鏈接。
30、IO: Udp/Ip
1)、Receive Byte Array: 從遠程主機接收指定數量的字節數並將它們存儲到一個數字數組中。該指令容許」任何」主機IP值。UDP/IP鏈接必須預先在Option->IO->UDP/IP中定義。
字符串和字節數組的最大大小爲1400個字節。
2)、Receive String: 從遠程主機接受一個字符串,該指令容許」任何」(不關心)主機IP值。
3)、Send Byte Array: 經過UDP把整數數組做爲字節發送到單個遠程主機,只截取0~255範圍內的值。
4)、Send String: 經過UDP把字符串(包括終結符)發送至單個遠程主機。
3一、Numeric(浮點型數據處理指令集)
1)、Abs / Max2 / Min2 / Pow / Sqrt / Square: 絕對值 / 最大值 / 最小值 / 乘冪 / 平方根 / 平方。
2)、Add / Subtract / Multiply / Divide / Remainder: 加減乘除求餘。
3)、Copy: 複製輸入的數字。
4)、Increment / Decrement: 加減1。
5)、Eq / NotEq / Greater / GreaterOrEq / Less / LessOrEq: 若是n1(= / != / > / >= / < / <=)n2,則返回true,不然返回false。
6)、Truncate / Fractional: 返回數字的整數 / 小數部分。
7)、Integer Divide: 兩個整數相除,返回商(整數),如7/2=3。
8)、Negate: 返回數字的否認值。
9)、NumToString: 數字轉換成字符串。
10)、StringToNum: 返回從給定字符串掃描獲得的數字。好比:12er345-->12(true);er445-->0(false)。
11)、Round: 返回最接近的整數。好比:0~0.5返回0(包括0.5),0.5~1返回1(不包括0.5)。
12)、SetNumber: 設定輸出爲特定的數值。
3二、Statistics(數據處理指令集)
1)、Cp: 返回過程能力指數CP。
2)、CpArr: 返回數組參數中全部值的過程能力指數CP。
3)、Cpk: 返回過程能力指數CPK(雙邊規格限制)。
4)、CpArr: 返回數組參數中全部值的過程能力指數CPK(雙邊規格限制)。
5)、Max / Min / Mean / Variance: 返回做爲參數接收的全部數字的最大值 / 最小值 / 均值 / 方差。
6)、MaxArr / MinArr / MeanArr / VarianceArr / SumArr: 返回數組參數中全部值的最大值 / 最小值 / 均值 / 方差 / 和。
3三、String(字符串指令集)
1)、AddStr: 將兩個字符串首尾相接來建立一個新的字符串。
2)、CharToNum: 返回字符竄字符值對應的ASCII數值。
3)、CompStr: 比較兩個字符串的大小,若是String1>String2,則返回1;若是String1=String2,則返回0;若是String1<String2,則返回-1。默認狀況下區分大小寫。
4)、CopyStr: 複製字符串。
5)、CreateStrInf: 用輸入的字符串建立一個新的字符串。
6)、FindStr: 在源字符串中前向搜索目標字符串,並返回第一個匹配項的位置(若是有)或-1(若是未找到)。區分大小寫。
7)、FindStrNth: 在源字符串的前向搜索中返回第n次出現目標字符串的位置,若是沒找到則返回-1。區分大小寫。
8)、FindStrReverse: 在源字符串中反向搜索目標字符串的位置,若是沒找到則返回-1。區分大小寫。
9)、GetAt: 返回字符串指定索引處字符的ASCII值。
10)、GetWordLength: 獲取字符串中最小和最大單詞的長度(以字符爲單位),而且返回單詞的個數。
好比: 」This is a string「 中最小、最大單詞長度分別是一、6,單詞個數是4。
11)、InsertAtStr: 在源字符串指定索引處插入參數字符串。
12)、LeftStr / RightStr / MidStr: 截取輸入字符串左邊 / 右邊 / 指定索引處開始的n個字符組成一個新的字符串。
13)、LenStr: 返回字符串的長度。
14)、NumToChar: 返回由ASCII值數組構建的字符串。將數字(ASCII值)轉換爲字符。
15)、PackStr: 鏈接輸入的字符串,返回新的字符串。
16)、PrintfNum: 將一個數字格式化爲字符串,相似於C語言中的"sprintf"命令。
格式:%[-]n.mf
其中,"n"表示小數點左邊的最大字符數;
"m"表示小數點右邊的最大字符數;
"f"表示浮點數;
"-"(可選)表示若是小數點左邊的實際字符數小於"n",則將字符串向左移。
17)、ReplaceStr: 將源字符串中指定的字符串部分替換成新的字符串。
18)、SetAtStr: 設置源字符串指定索引處字符的值。
19)、SetString: 給字符串賦值。
20)、TrimStr: 刪除源字符串的前m個字符和後n個字符,得到一個新的字符串。
3四、Trigonometric(三角函數指令集)
1)、Sin / Cos / Tan / ArcSin / ArcCos / ArcTan
2)、RadToDeg: 弧度轉化爲角度。
3)、DegToRad: 角度轉化爲弧度。
4)、GetPi / GetPiDiv2 / GetPiDiv4: 檢索π,π/2,π/4的值(由應用程序內部使用)。
原文出處:https://www.cnblogs.com/shaoxx333/p/11318874.html