tft每日頭條

 > 生活

 > SCL語言OR函數

SCL語言OR函數

生活 更新时间:2024-07-30 18:16:46

一、SCL的運算符

SCL具有完整的運算符,它包含算術、比較、邏輯等。每個運算符都有相應的優先級。優先級是指在一個表達式中可能包含多個由不同運算符連接起來的、具有不同數據類型的數據對象;由于表達式有多種運算,不同的運算順序可能得出不同結果甚至出現錯誤運算錯誤,因為當表達式中含多種運算符時,必須按一定順序進行結合,才能保證運算的合理性和結果的正确性、唯一性。關注<智控教育官網>

運算符及函數一覽表

SCL語言OR函數(SCL語言的運算符語法)1

SCL語言OR函數(SCL語言的運算符語法)2

二、SCL的程序注釋

适當的注釋可以增加代碼的可讀性,便于後續的功能維護或升級。SCL中的程序注釋有兩種,分别為符号"//"和"(*…*)",前一種用于行注釋,也就是後面隻可以有一行注釋。後面一種用于段注釋,"(* " 是一段注釋的起始符,最後用"*)" 結尾。

"//"使用方法:

SCL語言OR函數(SCL語言的運算符語法)3

"(*…*)"使用方法:

SCL語言OR函數(SCL語言的運算符語法)4

三、程序控制指令介紹

程序是語法和數據的有機結合,這裡介紹的流程控制即屬于基本的語法。SCL是高級編程語言,工程師根據工藝需求将各種控制語句進行有機組合并對輸入數據(包括各種現場信号、操作員命令等)的處理最終得出相應的控制命令至現場設備或相關的數據在HMI上顯示構成了控制程序。(控制程序=數據 語句)

SCL編輯器支持流程控制語句的快速輸入,我們隻需将光标移動到編輯器中目标位置,然後雙擊收藏夾中的語句圖标即可在編輯器中插入語句模闆,我們隻需要在模闆的基礎上編寫修改即可,參見下圖;

SCL語言OR函數(SCL語言的運算符語法)5

1.條件語句

所謂的條件語句就是根據已知條件判斷該執行哪段語句,使程序有選擇的執行。條件語句就是判斷條件,它可以是一個變量,也可以是一段語句的運算結果。

如果判斷條件是變量,那麼它必須為BOOL型;如果判斷條件是語句,那麼它的運算結果也必須是BOOL型。

IF語句示例:

//條件變量必須是B00L型

IF Start THEN

Q:=TRUE;//如果Start為TRUE則執行該語句

END_IF;

在上面的語句中,判斷條件就是變量Start的值。如果這個值是TRUE,那麼變量Q被置為TRUE;如果這個值為FALSE則跳過該語句,Q将保持原來的值而不做任何改變。

IF語句示例:

//條件語句的結果必須是BOOL型

IF (M-Number)<>0 THEN

Q:=TRUE;//如果(M-Number)<>0的結果為TRUE則執行此語句

END_IF;

在上面的語句中,判斷條件是語句(M-Number)<>0的運算結果。如果這個值為TRUE,那麼變量Q被置為TRUE;如果這個值為FALSE則跳過該語句,Q将保持原來的值而不做任何改變。

IF…ELSE語句示例:

//條件語句的結果必須是BOOL型

IF (M-Number)<>0 THEN

Data:=100;//如果(M-Number)<>0的結果為TRUE則執行此語句

ELSE

Data:=200;//如果(M-Number)<>0的結果為FALSE則執行此語句

END_IF;

在上面的語句中,判斷條件是語句(M-Number)<>0的運算結果是TRUE,那麼将變量Data賦值為100;反之賦值為200;

2. 選擇語句

一個變量或語句可能存在若幹個值,如果需要根據不同的值選擇執行不同的語句的話,那麼就需要選擇語句了。選擇語句是使用關鍵字CASE在語句或變量(變量和語句結果隻可以是整型)可能存在的若幹個結果中選擇執行相應的程序。它和IF語句相似,但IF語句對于多個可能性分支的選擇編寫較繁瑣,而CASE可以很好的解決這個問題,它支持在多個可能存在的結果中選擇。一般若小于3個條件分支建議使用IF語句,而若多于3個的條件分支則建議使用CASE語句。

CASE…OF語句示例:

CASE #Select Input OF //Select Input隻可以是整型

1:

#NextLable:=‘a’;

2:

#NextLable:=‘b’;

3:

#NextLable:=‘c’;

ELSE

#NextLable:=‘d’;

END_CASE;

在上面的語句中,程序首先讀取Select Input的值,然後根據這個值選擇執行相應的語句。若這個值為1,則執行NextLable:='a',若這個值為2,則執行NextLable:='b',若這個值為3,則執行NextLable:='c',若此值不符合所有的選擇條件則執行ELSE後面的語句NextLable:='d'。

、SCL的案例程序

1.一鍵啟停

SCL語言OR函數(SCL語言的運算符語法)6

變量聲明

在下面的語句中,當#IN等于1時,導通CU加計數計1,當#CV當前計數值等于1時,執行THEN後面的語句,将1賦值給OUT;當#IN再次等于1時,導通CU加計數計2,當#CV=當前計數值等于2時,加計數Q點輸出複位加計數,并且執行ELSE後面的語句,将0賦值給OUT;依次循環邏輯。

#IEC_Counter_0_Instance(CU:=#IN,

R:=#Q,

PV:=2,

Q=>#Q,

CV=>#CV);//加計數計到2時自己複位自己;

IF #CV=1 THEN

#OUT := 1;//當加計數當前值等于1時将1賦值給OUT;

ELSE

#OUT := 0;//當當前值不等于1時将0賦值給OUT;

END_IF;

2.星三角控制:

SCL語言OR函數(SCL語言的運算符語法)7

變量聲明

在下面的語句中,當#Start等于1時,導通CU加計數計1,當#CV當前計數值等于1時,執行CASE1:後面的語句,将1賦值給#KM和#KMY,當#KMY等于1時導通TON定時器;當#Time_Q等于1時,導通CU加計數計2,當#CV當前計數值等于2時,執行CASE2:後面的語句,将1賦值給KM和KM△,将0賦值給KMY,按下停止按鈕#stop,複位加計數#CV值,并且執行ELSE後面的語句,将0賦值給KM、KMY、KM△;

#IEC_Counter_0_Instance(

CU:=#Start OR #Time_Q,

R:=#Stop,

PV:=2,

CV=>#CV);

CASE #CV OF

1: // 當CV計數值等于1時啟動星型;

#KM := 1;

#KMY := 1;

#IEC_Timer_0_Instance(IN:=#KMY,

PT:=#Time,

Q=>#Time_Q);

2: // 當CV計數值等于2時啟動三角型

#KM:=1;

#KM△ := 1;

#KMY := 0;

ELSE // 當CV計數值不等于1或者2時複位輸出

#KM := 0;

#KM△ :=0;

#KMY := 0;;

END_CASE;

3.指示燈功能塊:

工業生産中,為顯示設備的不同狀态,通常采用信号燈的顯示方式來區分。這裡我們編寫一個具有常量、慢速閃爍和快速閃爍功能的信号燈功能塊(封裝成一個FB),該功能塊可以重複調用。

SCL語言OR函數(SCL語言的運算符語法)8

SCL語言OR函數(SCL語言的運算符語法)9

#Q := (#SF AND (NOT #FF) AND "Clock_1.25Hz")

OR

(#FF AND (NOT #SF) AND "Clock_2.5Hz")

OR

#NL;

該FB的各參數功能如下,當NL為TRUE時,燈常亮(Q=1),當SF為TRUE時,燈慢速閃爍(Q在0和1之間慢速間歇變化)當FF為TRUE時燈快速閃爍(Q在0和1之間快速間歇變化)。

下一篇小編會介紹SCL的轉換指令和移動指令,關注(智控教育官網)哦!!!!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved