詳細介紹
西門子CPUST20通訊模塊的服務說明:
《銷售態度》:質量保證、誠信服務、及時到位!
《銷售宗旨》:為客戶創造價值是我們永遠追求的目標!
《服務說明》:現貨配送至全國各地含稅(13%)含運費!
《產品質量》:原裝產品,*!
《產品優勢》:專業銷售 薄利多銷 信譽好,口碑好,價格低,貨期短,大量現貨,服務周到!
串口引腳定義及協議說明:
串口通訊,又經常被稱為點對點通訊或者PtP通訊,是工業設備中的一種非常通用的通訊方式,常用于獲取相對遠程采集設備的數據。
串行通信,通常利用RS232C或者RS485電氣接口,實現ASCII碼或者Modbus通訊;其特點是通信線路簡單,成本較低,用于解決不同廠商產品之間節點少、數據量小、通訊速率低、實時性要求不高的場合,如過程儀表、變頻器、連接掃描儀、條碼閱讀器等帶有串行通訊接口的設備,CP卡加載通訊協議后,還可以和支持Modbus協議的現場儀表通訊。
為了實現設備相互通訊,通訊雙方的通訊接口和通訊協議要*,基本的串行通訊的數據幀格式和波特率也要匹配。
西門子串行通訊支持的數據幀格式:
起始位:1位;
數據位:7/8位;
校驗位:1位奇/偶校驗位,或者沒有校驗位;
停止位:1/2位。
凡是符合這些格式的串行通信設備,理論上都可以相互通信。
支持的通訊接口
西門子CPUST20通訊模塊常用的串行數據接口有:RS232C 和 RS485/422。RS-232C、RS-422/485 標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。
注意: 接口和協議是兩個概念。
RS-232C 是低速率的單端串行通訊,RS-232C 采取不平衡傳輸方式,即所謂單端通訊。
1.RS232C 通訊接口特點:
RS-232采取不平衡傳輸方式,其收、發端的數據信號是相對于信號地,抗共模干擾能力差;
近距離通訊,大通信距離15m;
只能用于點對點(即一對收/發設備)通訊。
2. RS232C 接口定義:
RS232C并未定義連接器的物理特性,不同類型的連接器引腳定義也各不相同,其中9針和25針的引腳定義對照,如圖 1 所示。
圖1 RS232C 串口管腳定義
為簡單且常用的是三線制接法,即Txd,Rxd和地線三根,如上圖中紅色(2,3)和紫色(5)三個針腳。
RS422/485 接口
RS-422/485 改進 RS-232 通信距離短、速率低的缺點。
1.RS422/485接口特點:
RS-422、RS-485與RS-232不一樣,數據信號采用差分傳輸方式,也稱作平衡傳輸;
平衡傳輸抗干擾能力更強,使傳輸距離更遠,通訊距離長1200米;
可以連接多個設備,RS422總線可支持10個節點(單機發送、多機接收的單向傳輸),RS485可支持32個節點(多點、雙向通訊能力);
網絡拓撲一般采用終端匹配的總線型結構,不支持星型或樹形;
傳輸距離超過50米,需要在兩端加終端電阻330歐姆(推薦用LIYCY電纜);
2.RS422/485接口定義:
RS422/485 的端口有9針、15針,CP340/341/440/441的接口是15針,如圖 2 所示。
圖2 RS422/485 串口管腳定義
常用支持協議
常用的協議類型
ASCII 協議,又稱自由口
Modbus 協議
ASCII 協議通過通訊處理器和通訊伙伴之間的點對點連接控制數據傳輸。
由于消息的結構*由用戶定義,用戶可以以 ASCII 協議為基礎開發自己的消息。在接收方只需要定義接收消息的結束方式,發送接收雙方協商*。
ASCII 驅動程序允許發送和接收任何結構的數據(所有可打印的 ASCII 碼表字符符以及從 00 到 FFH [帶有 8 個數據位字符幀] 的所有其它字符或從 00 到 7FH [帶有 7 個數據位字符幀]的所有其它字符)。
ASCII協議適用于與支持串行通信的智能儀表、條形碼閱讀器、掃描儀、打印機等設備進行通訊。
MODBUS 協議
MODBUS RTU 通信協議是以主從的方式進行數據傳輸的,主動方發送請求,被動方響應請求,應答的方式。
在傳輸的過程中主站是主動方,即主站發送數據請求報文到從站;從站是被動方,即如果正常從站返回正常響應報文,如果故障從站返回異常響應報文,如圖 3 所示。
圖3 MODBUS 請求響應報文格式
MODBUS 系統中,數據交換需要通過功能代碼(Function Code)來控制的,具體分以下兩類。
有些功能碼是對位操作的,通信的用戶數據是以位為單位的:
FC01讀輸出位的狀態;
FC02讀輸入位的狀態;
FC05寫單個輸出位;
FC15寫多個輸出位。
有些功能碼是對16位寄存器操作的,通信的用戶數據是以字為單位的:
FC03讀輸出寄存器;
FC04讀輸入寄存器;
FC06寫單個輸出寄存器;
FC16寫多個輸出寄存器。
這些功能碼是對四個數據區位輸入、位輸出、寄存器輸入、寄存器輸出進行訪問的,如圖 4 所示。
圖4 訪問的數據區
Modbus地址由起始的數據類型代號和地址偏移量組成。功能碼決定對Modbus地址進行操作類型,其可根據需要傳輸的數據類型和個數來決定,如圖 5 所示。
圖5 MODBUS 地址對應關系
注意:在傳輸消息楨中,用戶使用的地址是0為基準,而對應的Modbus地址是1為基準,如FC16功能碼時以16進制的0000為起始地址,對應的寄存器是從40001開始。
MODBUS RTU 傳輸模式:消息楨中的每個8位分成2個4位16進制的字符。
每個字符幀格式(11位),如圖 6 所示。
圖6 字符幀格式
注意:如果無奇偶校驗位,停止位是2位。
消息幀格式,如圖 7 所示。
圖7 消息幀格式
STARTER診斷故障前提條件:在變頻器通電狀態下,您可以在線變頻器在線的狀態下,可以監控變頻的故障和報警狀態,前提是您的PG/PC上已裝有調試工具STARTER 。
診斷故障或報警步驟:
4.您還可以在starter中查看故障歷史記錄,在左側樹狀圖中選擇Diagnostics下的Alarm history。這時便可以看到當前的故障和歷史發生過的故障。
S7-1200 全局DB中的數據類型介紹
S7-1200 全局DB中的數據類型,包括基本數據類型、系統數據類型和硬件數據類型。
在DB塊中,新建一個變量,在數據類型列的下拉列表中,選擇需要的數據類型。
基本數據類型
基本數據類型:包括位、位字符串、整數、浮點數、定時器、日期&時間、字符、數組和結構;
1.位和位字符串
2.整數數據類型
3.浮點型實數數據類型
如 ANSI/IEEE 754-1985 標準所述,實(或浮點)數以 32 位單精度數 (Real) 或 64 位雙精度數 (LReal) 表示。 單精度浮點數的精度高為 6 位有效數字。
而雙精度浮點數的精度高為 15 位有效數字。在輸入浮點常數時,多可以 6 位 (Real) 或 15 位 (LReal) 有效數字來保持精度。
4.時間和日期數據類型
TIME 數據作為有符號雙整數存儲,基本單位為毫秒。存儲的數值是多少,就代表有多少ms。 編輯時可以選擇性使用日期 (d)、小時(h)、分鐘 (m)、秒 (s) 和毫秒 (ms) 作為單位。
不需要全部時間單位。 例如,T#5h10s 和 500h 均有效。所有單位值的組合值不能超過以毫秒表示的時間日期類型的上限或下限(-2,147,483,648 ms 到 +2,147,483,647 ms)。
DATE 數據作為無符號整數值存儲,被解釋為添加到基礎日期 1990 年 1 月 1 日的天數,用以獲取日期。 編輯器格式必須年、月和日。
TOD (TIME_OF_DAY) 數據作為無符號雙整數值存儲,被解釋為自日期的凌晨算起的毫秒數(凌晨 = 0 ms)。必須小時(24 小時/天)、分鐘和秒。 可以選擇小數秒格式。
DTL(日期和時間長型)數據類型使用 12 個字節的結構保存日期和時間信息。可以在塊的臨時存儲器或者 DB 中定義 DTL 數據。 必須在 DB 編輯器的"起始值"(Start value) 列為所有組件輸入一個值。
DTL結構的元素如下表:
5.字符和字符串數據類型
Char 在存儲器中占一個字節,可以存儲以 ASCII 格式(包括擴展 ASCII 字符代碼)編碼的單個字符。 WChar 在存儲器中占一個字的空間,可包含任意雙字節字符表示形式。
編輯器語法在字符的前面和后面各使用一個單引號字符。可以使用可見字符和控制字符。
CPU 支持使用 String 數據類型存儲一串單字節字符。 String 數據類型包含總字符數(字符串中的字符數)和當前字符數。 String 類型提供了多達 256 個字節,用于在字符串中存儲大總字符數(1 個字節)、當前字符數(1 個字節)以及多 254 個字節。 String 數據類型中的每個字節都可以是從 16#00 到16#FF 的任意值。
String 數據類型示例:
WString 數據類型支持單字(雙字節)值的較長字符串。*個字包含大總字符數;下一個字包含總字符數,接下來的字符串可包含多達 65534 個字。 每個字都可以是從 16#0000 到 16#FFFF 的任意值。
WString 數據類型示例:
6.數組數據類型
可以創建包含多個相同數據類型元素的數組,請為數組命名并選擇數據類型"Array [lo .. hi] of type",然后根據如下說明編輯"lo"、"hi"和"type":
● lo - 數組的起始(低)下標
● hi - 數組的結束(高)下標
● type - 數據類型之一,例如 BOOL、SINT、UDINT
示例: 數組聲明
ARRAY[1..20] of REAL 一維,20 個元素
ARRAY[-5..5] of INT 一維,11 個元素
ARRAY[1..2, 3..4] of CHAR 二維,4 個元素
示例: 數組地址
ARRAY1[0] ARRAY1 元素 0
ARRAY2[1,2] ARRAY2 元素 [1,2]
ARRAY3[i,j] 如果 i =3 且 j=4,則對 ARRAY3 的元素 [3, 4] 進行尋址
6.結構數據類型
STRUCT 數據類型表示由固定數目的多種數據類型的元素組成的數據結構。 數據類型 STRUCT 或 ARRAY 的元素還可以在結構中嵌套。 嵌套深度限制為 8 級。 結構可用于根據過程控制系統分組數據以及作為一個數據單元來傳送參數。
對于 S7-1200 或 S7-1500 系列 CPU,可多創建 65534 個結構。 其中每個結構可多包括 252 個元素。
下圖為數據類型 STRUCT 的示例:
結構所在的DB塊名為“結構示例",則可以使用 "結構示例".產品規格.長度 訪問結構的*個元素長度。
系統數據類型
系統數據類型:系統數據類型 (SDT) 由系統提供并具有預定義的結構。 系統數據類型的結構由固定數目的可具有各種數據類型的元素構成。 不能更改系統數據類型的結構。
系統數據類型只能用于特定指令。 下表給出了可用的系統數據類型及其用途:
統數據類型 | 長度(字節) | 說明 |
---|---|---|
IEC_TIMER | 16 | 定時值為 TIME 數據類型的定時器結構。 例如,此數據類型可用于“TP"、“TOF"、“TON"、“TONR"、“RT"和“PT"指令。 |
IEC_SCOUNTER | 3 | 計數值為 SINT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_USCOUNTER | 3 | 計數值為 USINT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_COUNTER | 6 | 計數值為 INT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_UCOUNTER | 6 | 計數值為 UINT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_DCOUNTER | 12 | 計數值為 DINT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
IEC_UDCOUNTER | 12 | 計數值為 UDINT 數據類型的計數器結構。 例如,此數據類型用于“CTU"、“CTD"和“CTUD"指令。 |
ERROR_STRUCT | 28 | 編程錯誤信息或 I/O 訪問錯誤信息的結構。 例如,此數據類型用于“GET_ERROR"指令。 |
CREF | 8 | 數據類型 ERROR_STRUCT 的組成,在其中保存有關塊地址的信息。 |
NREF | 8 | 數據類型 ERROR_STRUCT 的組成,在其中保存有關操作數的信息。 |
硬件數據類型
硬件數據類型:硬件數據類型由 CPU 提供。 可用硬件數據類型的數目取決于 CPU。
根據硬件配置中設置的模塊存儲特定硬件數據類型的常量。 在用戶程序中插入用于控制或激活已組態模塊的指令時,可將這些可用常量用作參數。
HW_ANY | WORD | 任何硬件組件(如模塊)的標識。 |
HW_DEVICE | HW_ANY | DP 從站/PROFINET IO 設備的標識 |
HW_DPSLAVE | HW_DEVICE | DP 從站的標識 |
HW_IO | HW_ANY | CPU 或接口的標識號 該編號在 CPU 或硬件配置接口的屬性中自動分配和存儲。 |
HW_IOSYSTEM | HW_ANY | PN/IO 系統或 DP 主站系統的標識 |
HW_SUBMODULE | HW_IO | 重要硬件組件的標識 |
HW_INTERFACE | HW_SUBMODULE | 接口組件的標識 |
HW_IEPORT | HW_SUBMODULE | 端口的標識 (PN/IO) |
HW_HSC | HW_SUBMODULE | 高速計數器的標識 此數據類型用于“CTRL_HSC"和“CTRL_HSC_EXT"指令。 |
HW_PWM | HW_SUBMODULE | 脈沖寬度調制標識 例如,此數據類型用于“CTRL_PWM"指令。 |
HW_PTO | HW_SUBMODULE | 脈沖編碼器標識 該數據類型用于運動控制。 |
AOM_IDENT | DWORD | AS 運行系統中對象的標識 |
EVENT_ANY | AOM_IDENT | 用于標識任意事件 |
EVENT_ATT | EVENT_ANY | 用于動態分配給 OB 的事件。 例如,此數據類型用于“ATTACH"和“DETACH"指令。 |
EVENT_HWINT | EVENT_ATT | 用于硬件中斷事件 |
OB_ANY | INT | 用于任意組織塊。 |
OB_DELAY | OB_ANY | 用于發生延時中斷時調用的組織塊。 例如,此數據類型用于“SRT_DINT"和“CAN_DINT"指令。 |
OB_TOD | OB_ANY | 時間中斷 OB 的數量。 例如,此數據類型用于“SET_TINT"、“CAN_TINT"、“ACT_TINT"和“QRY_TINT"指令。 |
OB_CYCLIC | OB_ANY | 用于發生看門狗中斷時調用的組織塊。 |
OB_ATT | OB_ANY | 用于動態分配給事件的組織塊。 例如,此數據類型用于“ATTACH"和“DETACH"指令。 |
OB_PCYCLE | OB_ANY | 用于分配給“循環程序"事件類別事件的組織塊。 |
OB_HWINT | OB_ATT | 用于發生硬件中斷時調用的組織塊。 |
OB_DIAG | OB_ANY | 用于發生診斷中斷時調用的組織塊。 |
OB_TIMEERROR | OB_ANY | 用于發生時間錯誤時調用的組織塊。 |
OB_STARTUP | OB_ANY | 用于發生啟動事件時調用的組織塊。 |
PORT | HW_SUBMODULE | 用于通信端口。 該數據類型用于點對點通信。 |
RTM | UINT | 用于運行小時計數器值。 例如,此數據類型用于“RTM"指令。 |
PIP | UINT | 用于創建和連接“同步循環"OB。此數據類型用于 SFC 26、27、126 和 127。 |
CONN_ANY | WORD | 用于任意連接。 |
CONN_PRG | CONN_ANY | 用于通過 UDP 進行開放式通信的連接。 |
CONN_OUC | CONN_ANY | 用于通過工業以太網 (PROFINET) 進行開放式通信的連接。 |
DB_ANY | UINT | 任意 DB 的標識(數量) 數據類型“DB_ANY"在“Temp"區域中的長度為 0。 |
DB_WWW | DB_ANY | 通過 Web 應用生成的 DB 的數量(例如,“WWW"指令) 數據類型“DB_WWW"在“Temp"區域中的長度為 0。 |