找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3989|回復: 0
收起左側

SCL編程入門

[復制鏈接]
ID:809532 發(fā)表于 2020-8-1 11:34 | 顯示全部樓層 |閱讀模式
SCL語言是由Pascal而生的結構化程序語言,與梯形圖相(LAD)比,SCL語言的靈活程度更高,易于編寫控制算法。
本教程雖然使用的是S7-1500系列的PLC,但實際上是面向S7-1200的用戶,在1500系列的PLC中,筆者更希望使用STL來對應他優(yōu)越的計算處理能力。在程序段中直接右擊插入即可,但是插入的程序段并不能完全使用SCL語法,GOTO等跳轉指令就不能使用。在SCL中一般不能使用絕對地址進行變量地址的訪問,變量表中的變量一般使用變量名稱進行訪問。
創(chuàng)建的SCL塊兒可以在觀測欄中顯示變量的地址,如下,為示例程序:
1.png
在SCL中,:= 表示賦值。
二、常量,變量及相關指令
(1)常量及變量的聲明
在博圖中,可以在代碼區(qū)進行變量的聲明,也可以在程序塊內(nèi)部進行變量聲明。具體如下圖:
變量聲明區(qū)有如下區(qū)別:
無論是FC還是FB塊,都是函數(shù)塊

    條件語句
    IF語句
    使用“條件執(zhí)行”指令,可以根據(jù)條件控制程序流的分支。該條件是結果為布爾值(TRUE 或 FALSE)的表達式?梢詫⑦壿嫳磉_式或比較表達式作為條件。
    執(zhí)行該指令時,將對指定的表達式進行運算。如果表達式的值為 TRUE,則表示滿足該條件;如果其值為 FALSE,則表示不滿足該條件。
    根據(jù)分支的類型,可以對以下形式的指令進行編程:
    IF 分支:
    IF <condition> THEN <instructions>END_IF;

    如果滿足該條件,則將執(zhí)行 THEN 后編寫的指令。如果不滿足該條件,則程序將從 END_IF 后的下一條指令開始繼續(xù)執(zhí)行。

    IF 和 ELSE 分支:

    IF <condition> THEN <instructions1>ELSE <Instructions0>END_IF;

    如果滿足該條件,則將執(zhí)行 THEN 后編寫的指令。如果不滿足該條件,則將執(zhí)行 ELSE 后編寫的指令。程序將從 END_IF 后的下一條指令開始繼續(xù)執(zhí)行。IF、ELSIF 和 ELSE 分支:

    IF <condition1> THEN <instructions1>ELSIF <condition2> THEN <instruction2>ELSE <Instructions0>END_IF;

    如果滿足第一個條件(<條件 1>),則將執(zhí)行 THEN 后的指令(<指令 1>)。執(zhí)行這些指令后,程序將從 END_IF 后繼續(xù)執(zhí)行。如果不滿足第一個條件,則將檢查第二個條件(<條件 2>)。如果滿足第二個條件(<條件 2>),則將執(zhí)行 THEN 后的指令(<指令 2>)。執(zhí)行這些指令后,程序將從 END_IF 后繼續(xù)執(zhí)行。如果不滿足任何條件,則先執(zhí)行 ELSE 后的指令(<指令 0>),再執(zhí)行 END_IF 后的程序部分。在 IF 指令內(nèi)可以嵌套任意多個 ELSIF 和 THEN 組合。可以選擇對 ELSE 分支進行編程。IF 指令的語法如下所示:

    IF "Tag_1" = 1THEN "Tag_Value" := 10;ELSIF "Tag_2" = 1THEN "Tag_Value" := 20;ELSIF "Tag_3" = 1THEN "Tag_Value" := 30;ELSE "Tag_Value" := 0;END_IF;

    后續(xù)帖子會慢慢講述指令的運用
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表