SECS半導體設備通訊-3 SECS-II通信標準

来源:https://www.cnblogs.com/wwwen/archive/2022/03/25/16053090.html
-Advertisement-
Play Games

一 SECS-II 概述 SECS-II 標准定義了使用如SECS-I、HSMS等傳輸協議在設備和主機之間交換的消息的形式和含義。 定義了以消息的形式在設備和主機之間傳遞信息,消息按其行為分類,稱為Stream。有很多不同的行為Stream,每個Stream又包括具體的消息,稱為Function。 ...


一 SECS-II 概述

SECS-II 標准定義了使用如SECS-I、HSMS等傳輸協議在設備和主機之間交換的消息的形式和含義。

定義了以消息的形式在設備和主機之間傳遞信息,消息按其行為分類,稱為Stream。有很多不同的行為Stream,每個Stream又包括具體的消息,稱為Function。

標準還定義了消息的結構,消息由數據項和數據項列表 ( items and lists of items ) 構成。該結構允許自描述數據格式,以保證對消息的正確解釋。

SECS-II還規定了事務協議,用於管理消息的交換、分塊等,對SECS-II實現提出了一些最低要求。

 

二 Stream and Function

所有的消息按照行為分為不同的Stream,在每種Stream中再按照其功能分為Function,即一個Stream中的一個Function對應一種具體行為功能的消息。

2.1 Strem的分類

  • Stream 1 Equipment Status:設備狀態;
  • Stream 2 Equipment Control and Diagnostics:設備控制和診斷;
  • Stream 3 Material Status:原料狀態;
  • Stream 4 Material Control:原料控制;
  • Stream 5 Exception Handling:異常處理;
  • Stream 6 Data Collection:數據採集;
  • Stream 7 Process Program Management:工藝程式管理;
  • Stream 8 Control Program Transfer:控製程序傳輸;
  • Stream 9 System Errors:系統錯誤;
  • Stream 10 Terminal Services:終端服務;
  • Stream 11 Host File Services (Deleted):主機文件服務(已刪除);
  • Stream 12 Wafer Mapping:晶片圖形佈置;
  • Stream 13 Data Set Transfers:數據集傳輸;
  • Stream 14 Object Services:對象服務;
  • Stream 15 Recipe Management:配方管理;
  • Stream 16 Processing Management:工藝進程管理;
  • Stream 17 Equipment Control and Diagnostics:設備控制和診斷;
  • Stream 18 Subsystem Control and Data:子系統控制和數據。

 

2.2 Stream和Function的編號

Stream和Function按照數字進行編號。所有的Primary Message的Function編號為奇數,其對應的Secondary Message(即 Reply Message)的Function編號為偶數且為其Primary Message的Function編號加1。

如果Primary Message不需要應答,則其對應的偶數編號(Primary Message Function 編號加1)的Function不使用,保留。

所有Stream中Function編號為0的Message保留,用於中止事務。

下列Stream和Function編號組為SECS-II標準所定義:

  • Stream 0, Functions 0-255;
  • Streams 1-63, Functions 0-63;
  • Streams 64-127, Function 0。

下列Stream和Function可由用戶自定義:

  • Streams 1-63, Functions 64-255;
  • Streams 64-127, Functions 1-255。

 

三 事務和會話協議

3.1 事務

事務:是信息交換的基礎。一個事務由不需要Reply的Primary Message或需要Reply的Primary Message及其Reply Message組成。

下列是SECS-II在事務層面所規定的要求:

  • 使用S1F2來響應S1F1;
  • 對於接收到的任何設備無法處理的消息,使用Stream 9發送相應的錯誤消息;
  • 格式化任何其他受支持的消息;
  • 在檢測到設備上的事務超時後,向主機發送S9F9;
  • 在收到Function 0的Message作為對Primary Message的回覆後,終止相關事務。該設備不應向主機發送任何錯誤消息。

 

3.2 會話

會話:是用於完成特定任務的一系列一個或多個相關事務。會話應包括完成任務所需的所有事務,會話結束時,會話雙方應釋放相關資源。

會話超時:表示會話在規定時間內未完成。會話超時時間和檢測有用戶應用程式自定義。

會話超時將終止會話的進一步操作,並將允許清除任何已提交的資源。在設備上檢測到會話超時後,應發送S9F13給主機。

SECS-II中定義了7種類型的會話:

1.  一個無需回覆的Primary Message是最簡單的會話。此消息必須是一個單塊的SECS-II消息。

2.  如果響應端有發起端想要的數據,則會使用Primary Message請求這些數據,響應端將這些數據作為Reply Message回覆給發起端。這是一個 request / data conversation。

3.  如果發起端將單塊消息中的數據發送給響應端,並期望從響應端回覆確認。這是一個 send / acknowledge conversation。

4.  如果發起端有一個要為特定的交互發送的多塊消息,則發起端必須在發送數據之前獲得響應端的許可。

     會話中的第1個事務請求發送許可權,響應端授予或拒絕發送許可權。如果授予許可權,發起端發送數據,響應端進行相應地回覆。

     這是一個 inquire / grant / send / acknowledge conversation。

5.  一個關於在設備和主機之間傳輸未格式化的數據集的對話,這個會話在 Stream 13 中有詳細描述。

6.  一個關於設備之間原料處理的會話。這個會話在 Stream 4中詳細描述。

7.  發起端可以向響應端請求需要一段時間才能獲取的信息(例如,操作員的輸入)。

     會話中的第一個事務請求信息,並且響應端以三種方式之一響應:(1)返回信息,(2)響應端表示不能或不會獲得信息,(3)響應端表示將在隨後的事務中獲得並返回信息。

   對於方式(3),響應端將在信息可用時啟動後續事務返回信息。方式(3)是一個 request / acknowledge / send / acknowledge conversation。

 

四 消息的數據結構

所有根據SECS-II標準的消息使用兩種數據結構,即 Item (項目) 和 List(列表)。消息數據結構定義了消息的邏輯劃分,與消息傳輸協議的物理劃分不同。

消息的數據結構旨在為在設備和主機之間傳遞的消息提供一個自描述的內部結構。

4.1 Item

一個Item是一個具有長度和格式的信息包。由Item Header 和 Item Body 組成。

Item的前2個、前3個或前4個位元組稱為 Item Header,用以描述Item的長度和格式。Item Header後的位元組稱為 Item Body,Item Body是Item的實際數據。

下圖是ItemHeader的結構圖。

Header的第1個位元組為Format byte,其後的位元組為Length byte。

Format byte的第1位和第2位:

定義Format byte後面有幾個位元組來表述Item Body的長度。取值只能1、2、3。如果值為2,則表示有2個位元組表述Item Body的長度,即第2個和第3個位元組。值為0是非法的,會產生錯誤。

Format byte的第3位至第8位:

定義數據的格式,即ItemBody中的位元組數據類型。下圖為數據類型定義表:

 

4.2 List

List是一組有序的元素,其中元素可以是Item或List。

List的Header與數據類型為0的Item的Header形式相同。不過List的Header中的長度表示List中元素的個數,Item的Header中的長度表示數據位元組的個數。

 

4.3 Localized Character String Items

本地化字元串項是一個用於表示由多位元組字元組成的字元串的Item。其Header中的Format Code為22(Octal)。它由string header和string組成。

因為字元有許多不同的編碼方案,所以有一個附加的string header來表述字元集。

string header 是一個2位元組16位的數字,它在 Item Header 之後,在string之前。

string header 是 Item 的 實際數據的一部分,所以它的長度計算包含在Item Header 的 Length byte 中。

下圖為string header的編碼集對應。

 

4.4 不同Item的數據實例

1.  包含一個二進位數據10101010的Item。

  00100001  Item, binary, 1 length byte

  00000001  1 byte length

  10101010  data byte

  2.  包含三個ASCII字元ABC的Item。

  01000001  Item ASCII, 1 length byte

  00000011  Three bytes long

  01000001  ASCII A

  01000010  ASCII B

  01000011  ASCII C

  3.  包含三個2位元組有符號整型數字的Item。

  01101001  Item, 2-byte integers

  00000110  6 bytes total (6/2=3 integers)

  xxxxxxxx   MSByte number x

  xxxxxxxx   LSByte number x

  yyyyyyyy  MSByte number y

  yyyyyyyy  LSByte number y

  zzzzzzzz  MSByte number z

  zzzzzzzz  LSByte number z

  4.  包含一個4位元組浮點數的Item。

  10010001  Item, 4-byte floating point  

       00000100  4 bytes (4/4=1 number)

  f f f f f f f f

  f f f f f f f f  Floating point number

  f f f f f f f f    

  f f f f f f f f

 

 

說明:

SECS-II 定義的標準Stream Fuction消息,這些Stream Function的描述和含義未做進一步闡述  . . .

標準消息所應使用的數據項未作進一步闡述 . . .

未完待續 . . .

以上為SECS通信基礎知識的整理-3。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分析: A:有哪些類呢?用戶類 測試類 B:每個類有哪些東西呢? 用戶類: 成員變數:用戶名,密碼 構造方法:無參構造成員方法:getXxx()/setXxx() 登錄,註冊 假如用戶類的內容比較對,將來維護起來就比較麻煩,為了更清晰的分類,我們就把用戶又劃分成了兩類 用戶基本描述類 成員變數:用戶 ...
  • badger 是 dgraph 開源的 LSMTree 的 KV 引擎,它相比 leveldb 有 KV 分離、事務、併發合併等增強,是 go 生態中比較生產級的存儲引擎了。 ...
  • 一、類的封裝: 封裝將類的信息隱藏在類內部,不允許外部直接修改該類的變數,只能通過該類提供的方法來實現對隱藏信息的操作和訪問 class Boss(): # 類的公共屬性 level=1 # 類的初始化(構造方法),在類實例化時自動調用。 def __init__(self,name,hp,sp,a ...
  • 又到了每日分享Python小技巧的時候了,今天給大家分享如何實現視頻、音樂、圖片下載自由的教程吧,我自己覺得灰常好用,所以把它分享給大家,因為好東西需要大家一起學。 1、實戰效果 •接下來下冰冰圖片 you-get https://inews.gtimg.com/newsapp_bt/0/13122 ...
  • 廢話不多說,直接上代碼 from selenium import webdriver from selenium.webdriver import ChromeOptions import time import re from selenium.webdriver.support import e ...
  • 目錄 一.簡介 二.效果演示 三.源碼下載 四.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 O ...
  • 線性數據結構 線性結構是一個有序數據元素的集合。 常用的線性結構 線性表,棧,隊列,雙隊列,串(一維數組)。 非線性數據結構 關於廣義表、數組(高維),是一種非線性的數據結構。 常見的非線性結構有:二維數組,多維數組,廣義表,樹(二叉樹等),圖 線性表(線性存儲結構) 將具有“一對一”關係的數據“線 ...
  • 在 M1 Mac 上開始使用 .NET MAUI 開發 (iOS) 的最簡單方法。 .NET 多平臺應用程式 UI (.NET MAUI) 是一個跨平臺框架,用於使用 C# 和 XAML 創建本機移動和桌面應用程式,這些應用程式可以從單個共用代碼庫在 Android、iOS、macOS 和 Wind ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...