西門子 S7-1200/1500 PLC SCL 語言編程從入門到精通

北島李工 編

  • 出版商: 化學工業
  • 出版日期: 2022-01-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 347
  • 裝訂: 平裝
  • ISBN: 7122400417
  • ISBN-13: 9787122400413
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書幫助讀者係統學習西門子SCL編程語言,
書中案例的硬件基於西門子S7-1200\/1500系列PLC,軟件基於博途開發環境。
本書分三部分:入門篇、進階篇和 篇。
入門篇介紹了S7-1200\/1500的硬件環境、PLC工作原理及SCL編程的基本概念;
進階篇介紹了SCL編程的複雜數據類型、擴展指令、工藝對像等,包含大量實用案例講解;
 篇介紹如何使用C#語言編寫TCP及UDP通信的控制台程序,並實現與PLC的通信。
本書從基礎到進階再到 ,帶領讀者循序漸進地學習西門子SCL編程方法和技巧。
書中附有視頻講解,讀者掃描二維碼即可觀看學習。
本書適合電氣自動化的編程和調試工程師使用,也可作為大專院校相關專業的教材。

作者簡介

李傑,上海申克機械有限公司,高級調試工程師,本人從事電氣自動化工作近10年,熟悉電氣自動化的選型、設計及PLC編程調試。
曾主管設計並調試某公司的水果深加工自動化生產線;
曾在某汽車廠調試自動化加液設備及燃油密封檢測設備;
在工程項目中使用過西門子S7-300/400,S7-1200,S7-1500及S7-200 smart系列PLC,有比較豐富的經驗。

目錄大綱

篇 入門篇 001
第1章 S7-12001500硬件介紹 001
1.1 西門子SIMATIC S7-1200 PLC概述 001
1.2 S7-1200的CPU模塊 003
1.2.1 CPU模塊概述 003
0101-CPU 1214FC介紹 004
1.2.2 CPU 1214C ACDCRelay 004
1.3 S7-1200的數字量模塊 007
1.3.1 數字量輸入模塊 007
1.3.2 數字量輸出模塊 009
1.4 S7-1200的模擬量模塊 010
1.4.1 模擬量輸入模塊 010
1.4.2 模擬量輸出模塊 012
1.5 西門子SIMATIC S7-1500 PLC概述 013
1.6 S7-1500的CPU模塊 015
1.6.1 CPU模塊概述 015
1.6.2 CPU 1515-2PN模塊 017
1.7 S7-1500ET 200MP的數字量模塊 019
1.7.1 數字量輸入模塊 019
1.7.2 數字量輸出模塊 019
1.7.3 數字量故障安全模塊 021
1.8 S7-1500ET 200MP的模擬量模塊 023
1.8.1 模擬量輸入模塊 023
1.8.2 模擬量輸出模塊 027
1.9 S7-1500ET 200MP的組件 029
1.9.1 導軌 029
1.9.2 U形連接器 029
1.9.3 前連接器 029
1.9.4 電源端子 030

第2章 PLC的工作原理與存儲方式 031
2.1 PLC的工作原理 031
2.1.1 PLC的程序結構 031
2.1.2 CPU的工作模式 031
2.2 CPU的存儲器 033
2.2.1 裝載存儲器 033
2.2.2 工作存儲器 033
2.2.3 保持存儲器 034
2.2.4 系統存儲器 034
2.3 SIMATIC存儲卡 035
2.3.1 SIMATIC存儲卡簡介 035
0201-SIMATIC存儲卡介紹 035
2.3.2 SIMATIC存儲卡的安裝 036
2.3.3 SIMATIC存儲卡的工作模式 037
2.3.4 使用SIMATIC存儲卡 新CPU固件 037
2.4 在線查看存儲器的使用情況 038

第3章 TIA博途軟件開發環境 039
3.1 TIA博途平台簡介 039
3.2 程序編輯器介紹 042
3.3 SCL編輯器的常規設置 043
3.3.1 高亮顯示關鍵字 043
3.3.2 新添加塊的設置 044
3.4 創建SCL函數塊或函數 045
3.5 SCL代碼編輯器 045
3.6 SCL編輯器使用技巧 046
3.6.1 使用區間指令將代碼分區 046
3.6.2 使用書籤快速定位代碼 047

第4章 TIA博途軟件應用實例 049
4.1 創建示例程序 049
0401-創建示例程序 049
4.2 項目的編譯、下載與在線監控 053
0402-項目程序的下載與在線監控 053
4.3 程序的比較 054
0403-程序在線與離線比較 055
4.4 項目的歸檔與恢復 055
0404-項目的歸檔與恢復 056
4.5 使用項目參考功能 056
0405-使用項目參考功能 056

第5章 S7-12001500的軟件架構與編程 057
5.1 操作系統與用戶程序 057
5.2 操作系統的接口——組織塊 058
5.2.1 組織塊的分類 058
0501-組織塊(Organization Block)介紹 059
5.2.2 程序循環組織塊 059
5.2.3 啟動組織塊 059
5.2.4 延時中斷組織塊 059
5.2.5 循環中斷組織塊 059
5.2.6 硬件中斷組織塊 060
5.2.7 時間錯誤中斷組織塊 060
5.2.8 診斷錯誤中斷組織塊 060
5.2.9 插拔中斷組織塊 060
5.2.10 機架或子站故障組織塊 061
5.2.11 日期時間中斷組織塊 061
5.2.12 狀態中斷組織塊 061
5.2.13 新中斷組織塊 061
5.2.14 配置中斷組織塊 061
5.2.15 運動控制插補器組織塊 061
5.2.16 運動控制伺服組織塊 061
5.2.17 運動控制伺服前調組織塊 061
5.2.18 運動控制伺服後調組織塊 062
5.3 用戶程序的基本單位——程序組織單元 062
5.3.1 函數 062
0502-函數(FC)介紹 062
5.3.2 函數塊 063
0503-函數塊(FB)及其背景數據塊的介紹 063
5.3.3 數據塊 064
0504-全局數據塊(Global DB)介紹 064
0505-背景數據塊介紹 066
0506-多重背景數據塊介紹 067
5.4 編程指導 068
5.4.1 模塊化程序設計 068
5.4.2 程序組織單元的命名規則 068
5.4.3 代碼註釋的 格式 069

第6章 SCL語言 070
6.1 SCL語言與PLC 編程標準 070
6.1.1 SCL語言簡介 070
6.1.2 PLC 編程標準——IEC 61131-3簡介 071
6.2 SCL語言的特點和優勢 071
6.3 先睹為快:SCL編程實現按鈕控制指示燈 072
6.3.1 硬件軟件環境及電氣圖紙 072
0601-TIA博途實例-電氣圖紙 073
6.3.2 程序代碼示例 073
0602-TIA博途實例-程序講解 075
0603-LED燈實際效果演示 075

第7章 SCL編程的基本概念 076
7.1 基本數據類型 076
7.1.1 布爾型 076
7.1.2 整數類型 076
7.1.3 實數類型 077
7.1.4 定時器時間值類型 078
7.1.5 日期時間類型 079
7.1.6 字符與字符串類型 081
7.1.7 位字符串類型 082
7.2 變量與常量 083
7.2.1 變量概述 083
7.2.2 變量的命名規則 083
7.2.3 變量的聲明 084
7.2.4 預定義變量——ENO 084
7.2.5 常量概述 085
7.2.6 常量的聲明 085
7.3 表達式 086
7.3.1 算術表達式 086
7.3.2 關係表達式 087
7.3.3 邏輯表達式 087
7.4 運算符及其優先級 088
7.5 語句 088
7.5.1 語句概述 088
7.5.2 賦值語句 088
7.5.3 條件語句(IF) 089
7.5.4 選擇語句(CASE) 090
7.5.5 循環語句 091
7.5.6 跳轉語句 094
7.6 代碼的註釋 095

第8章 SCL基本指令及其應用 096
8.1 沿信號檢測指令 096
8.1.1 上升沿信號檢測指令 096
0801-上升沿信號檢測 096
8.1.2 下降沿信號檢測指令 097
8.2 定時器指令 097
8.2.1 脈衝定時器(TP)指令 097
0802-脈衝定時器示例 099
8.2.2 延時接通定時器(TON)指令 099
0803-延時接通定時器示例 100
8.2.3 延時斷開定時器(TOF)指令 100
0804-延時斷開定時器示例 101
8.2.4 保持型延時接通定時器(TONR)指令 101
0805-保持型延時接通定時器示例 102
8.2.5 復位定時器(RESET_TIMER)指令 102
8.2.6 定時器預設值設置(PRESET_TIMER)指令 103
8.3 計數器指令 103
8.3.1 加計數器指令 103
8.3.2 減計數器指令 104
8.3.3 加減計數器指令 105
8.4 數學指令 106
8.4.1 正弦指令 106
8.4.2 餘弦指令 106
8.4.3 平方指令 106
8.4.4 值指令 107
8.4.5 小值指令 107
8.5 讀寫存儲器指令 107
8.5.1 PEEK指令 107
8.5.2 POKE指令 108
8.6 移動指令 110
8.6.1 MOVE_BLK指令 111
8.6.2 UMOVE_BLK指令 111
8.6.3 FILL_BLK指令 111
8.6.4 UFILL_BLK指令 112
8.7 轉換指令 112
8.7.1 類型轉換指令 112
8.7.2 取整指令 112
8.7.3 歸一化指令——NORM_X 113
8.7.4 比例縮放指令——SCALE_X 114
8.8 字邏輯指令 115
8.8.1 解碼(DECO)指令 115
8.8.2 編碼(ENCO)指令 115
8.9 移位指令 116
8.9.1 右移(SHR)指令 116
8.9.2 左移(SHL)指令 116
8.9.3 循環右移(ROR)指令 117
8.9.4 循環左移(ROL)指令 117

第9章 SCL基本編程實例 118
9.1 電機啟停控制 118
0901-電機啟停控制-電氣圖紙講解 119
0902-電機啟停控制-程序講解 120
0903-電機啟停控制-實際演示 120
9.2 用不同的頻率控制蜂鳴器 120
0904-不同頻率控制蜂鳴器發聲-電氣圖紙講解 121
0905-不同頻率控制蜂鳴器發聲-程序講解 122
0906-不同頻率控制蜂鳴器發聲-實際演示 123
9.3 空壓機的延時關閉 124
0907-空壓機延時關閉-電氣圖紙講解 124
0908-空壓機延時關閉-程序講解 126
0909-空壓機延時關閉-實際演示 126
9.4 移動單元位置計算 126
0910-移動單元位置計算-電氣圖紙講解 127
0911-移動單元位置計算-程序講解 128
0912-移動單元位置計算-實際演示 128
9.5 獲取模擬量溫濕度傳感器的值 129
0913-模擬量溫濕度傳感器-電氣圖紙講解 129
0914-模擬量溫濕度傳感器-程序講解 130
0915-模擬量溫濕度傳感器-實際演示 131
9.6 BCD碼轉換成整數 131
0916-BCD碼轉換成整數 132
9.7 位字符串的提取與組合 133
0917-位字符串的提取與組合 133

第二篇 進階篇 135
第10章 S7-12001500複雜數據類型 135
10.1 數組 135
10.1.1 數組概述 135
10.1.2 數組的聲明 136
10.1.3 數組元素的引用 136
10.2 指針 136
10.2.1 基本概念 136
10.2.2 Pointer類型 137
10.2.3 Any類型 138
10.2.4 Variant類型 139
10.3 結構體 139
10.3.1 結構體及其聲明 139
10.3.2 結構體變量的引用 140
10.4 用戶自定義類型 141
10.4.1 基本概念 141
10.4.2 用戶自定義類型變量的聲明及引用 142
10.5 系統數據類型 142

11.1 日期時間指令 143
11.1.1 時間加減指令 143
11.1.2 時鐘讀寫指令 144
1101-讀寫CPU系統時鐘 145
11.2 字符串操作指令 146
11.2.1 獲取字符串當前長度 146
11.2.2 獲取字符串 長度 146
11.2.3 讀取字符串左側字符 146
11.2.4 讀取字符串右側字符 147
11.2.5 讀取字符串中間字符 147
11.2.6 插入字符串 148
11.2.7 替換字符串 148
11.3 中斷指令 149
11.3.1 硬件中斷的綁定與解綁 149
11.3.2 循環中斷的設置與查詢 150
11.3.3 日期時間中斷的設置與啟用 152
11.3.4 延時中斷的啟用與取消 155
11.4 配方管理 156
11.4.1 配方概述 156
11.4.2 配方相關數據塊 157
11.4.3 配方導出指令 158
1102-如何導出配方數據 159
11.4.4 配方導入指令 161
1103-如何導入配方數據 162
11.4.5 讀配方指令 164
1104-讀取配方數據 165
11.4.6 寫配方指令 165
1105-寫入配方數據 166
11.5 診斷指令 166
11.5.1 讀取IO設備的名稱 166
1106-讀取IO設備名稱 166
11.5.2 讀取IO設備信息 1681107-讀取IO設備信息 168
11.5.3 讀取IO設備的狀態 170
1108-讀取IO設備狀態 170
11.5.4 讀取標識及維護數據 172
1109-讀取標識及維護數據 174

第12章 SCL編程進階實例與技巧 175
12.1 通用函數庫 175
12.1.1 基本介紹 175
12.1.2 下載與安裝 175
1201-LGF通用函數庫的下載及安裝 175
12.1.3 LGF函數介紹——脈衝繼電器 176
1202-LGF脈衝繼電器 177
12.1.4 LGF函數介紹——頻率發生器 178
1203-LGF頻率發生器 178
12.1.5 LGF函數介紹——環型存儲區 179
1204-LGF環型存儲區函數 179
12.2 自己編程實現沿信號檢測 181
12.3 自己編程實現雙穩態觸發器 182
12.4 自己編程實現減計數器 184
12.5 自己編程實現定時採樣 186
12.6 自己編程實現數據塊複製 188
12.7 自己編程計算設備運行時間 189
12.8 間接尋址 192
12.8.1 變量的覆蓋訪問(AT) 192
12.8.2 變量的片段訪問(SLICE) 192
12.8.3 PEEKPOKE 194
12.9 SCL源代碼操作 195
12.9.1 導出源代碼 195
12.9.2 導入源代碼 195
12.10 SCL程序加密保護 196
12.11 創建自己的全局庫 196
1205-創建自己的全局庫 197

第13章 SCL工藝功能及其應用 198
13.1 高速計數器 198
13.1.1 高速計數器概述 198
13.1.2 S7-1200的高速計數器 198
13.1.3 S7-1200的高速計數器指令 200
13.1.4 S7-1500的高速計數器模塊 204
13.1.5 實例1:CPU 1214FC獲取編碼器的數據 208
1301-編碼器-高速計數器電氣圖紙講解 209
1302-編碼器例程程序講解 211
13.1.6 實例2:高速計數器當前值的斷電保存 211
1303-保存高速計時器當前值 211
13.2 脈寬調製(PWM) 213
13.2.1 脈寬調製概述 213
13.2.2 S7-1200的PWM資源 213
13.2.3 S7-1200 PWM的組態與控制 214
13.2.4 S7-1500的PWM資源 216
13.2.5 S7-1500 PWM的組態與控制 216
1304-PWM組態及程序講解 216
13.2.6 SCL實例:CPU 1214FC使用PWM實現電機調速 220
1305-EPLAN電氣圖紙講解 220
13.3 PID控制 223
13.3.1 開環系統與閉環系統 223
1306-PWM控制電機調速-實際延時 223
13.3.2 PID控制器 224
13.3.3 S7-12001500 PID指令介紹 224
1307-PID指令及其組態 224
13.3.4 PID工藝對象 226
13.3.5 實例:CPU 1214C使用PID控制水罐的溫度 227
13.4 運動控制 232
13.4.1 運動控制概述 232
13.4.2 S7-1200的PTO資源 236
13.4.3 S7-1500ET 200MP的TM PTO4模塊 236
13.4.4 S7-12001500的運動軸與工藝對象 238
1308-運動軸工藝對象介紹 238
13.4.5 S7-12001500的運動控制指令 241
13.4.6 實例:CPU 1214FC控制步進電機進行 定位 252
1309-步進電機-接線圖講解 254
1310-步進電機運動控制-工藝對象講解 256
1311-步進電機控制-回原點 258
1312-步進電機運動控制-程序講解 261
1313-步進電機運動控制-實例演示 261

第14章 SCL通信功能及其應用 262
14.1 串行通信 262
14.1.1 串行通信概述 262
14.1.2 S7-1200的串口通信模塊及信號板 264
1401-CM 1241 RS232模塊外觀介紹 264
1402-CB 1241 RS485外觀及安裝介紹 267
14.1.3 S7-1500ET 200MP串口通信模塊 268
14.1.4 點對點通信指令 270
1403-串口指令SEND_PTP RCV_PTP數據收發演示 270
1404-CM 1241 RS232固件 新 278
14.1.5 SCL實例:CPU 1214FC與串口助手通信 279
1405-CM1241使用通用串行指令與串口助手通信 279
14.2 Modbus-RTU通信 281
14.2.1 Modbus簡介 281
14.2.2 S7-12001500的Modbus-RTU指令 283
14.2.3 Modbus協議的數據模型和地址模型 287
14.2.4 SCL實例:CPU 1214FC通過Modbus-RTU協議讀取溫度傳感器的數值 289
1406-CB 1241 RS485讀取溫度傳感器EPLAN電氣圖紙講解 289
1407-CB 1241 RS485讀取溫度傳感器 291
14.3 以太網通信 292
14.3.1 S7-12001500的以太網接口及連接資源 292
14.3.2 S7通信 293
1408-S7通信連接硬件組態 296
1409-CPU ST20和CPU 1214FC的通信講解 299
14.3.3 TCP通信 303
1410-創建一個TCP通信函數塊ComTCP 309
14.3.4 Modbus TCP通信 312
1411-Modbus-TCP服務器和客戶端程序介紹 321
1412-Modbus-TCP通信實例演示 321
14.3.5 UDP通信 321
1413-創建一個UDP通信的函數塊comUDP 325
14.4 PROFINET通信 328
14.4.1 PROFINET協議簡介 328
14.4.2 PROFINET IO控制器與IO設備 329
14.4.3 實例:構建一個PROFINET IO系統 330
1414-構建一個PRFINET IO系統 330
14.4.4 智能設備(I-Device) 332
14.4.5 實例:CPU ST20作為CPU 1214FC的智能設備 332
14.5 Web服務器應用 335
14.5.1 Web服務器功能介紹 335
14.5.2 標準Web服務器 337
1415-Web服務器功能介紹 337

第三篇 篇 339
第15章 語言C#與SCL的程序應用實例 339
15.1 C#語言簡介 339
15.2 使用C#創建一個TCP服務器程序myTCPServer 340
15.3 使用myTCPServer與函數塊FB5005_ComTCP通信 343
1501-myTCPServer與函數塊 FB5005_ComTCP通信 343
15.4 使用C#創建一個UDP通信程序myUDPTalker 343
15.5 使用myUDPTalker與函數塊FB5006_ComUDP通信 346
1502-myUDPTalker與函數塊FB5006_ComUDP通信 346

附錄 ASCII碼表 347