天天看點

施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解

施耐德UnityXLpro結構指令CASE的使用和了解

一、簡介

  其實對于我這樣一個使用施耐德的小白,做了幾個項目一直都沒用到CASE這個指令,然後今天在一個技術群上,一位朋友提出,怎麼用一個脈沖去在CASE裡面觸發一個程式,然後我就自己研究一下,覺得可以用來作為了解CASE的範例,互相交流一下經驗。

二、測試使用平台

軟體版本:UnityXLPro 13.0

CPU:昆騰140cpu

三、 關于CASE語句自帶的幫助檔案說明
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解

四、 個人了解

小夥伴們看明白上圖了嗎?

如果不明白,可以看看試試我的解釋:

  我們想知道一個函數到底怎麼用,首先我們要明白這個函數是用來幹嘛的,就例如我們知道IF函數裡面,IF後面是判斷條件THEN後面是執行對象,然後形成一個條件判斷的功能。其實我們的CASE可以了解為通過判斷一個選擇器(圖中例子是SELECT的整型變量)的數值,根據對應這個選擇器的數值對應标簽執行對應的程式段(标簽:後面的程式),如果選擇器的數值,标簽都沒有就執行其他部分(ELSE的部分),有點類似一個人的衣櫃有不同衣服,如果去約會穿這樣一套,如果去上班就穿另外一套,不同場合對應穿不同衣服,然後衣櫃充當選擇器。

執行個體解釋

1、建立變量:

變量:

變量 解釋
abc 選擇器
a 被運算整數型變量
b、c、d 輸出運算數型變量

程式中的定義:

施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解

2、測試思路:

  利用UnityXLpro仿真功能和動态資料表,對選擇器和變量a指派,對b、c、d三個變量進行觀察,展現CASE這個功能函數的工作原理。

3、程式:

不帶else部分

CASE abc OF
1: 
b:=a + 5;
2:  
c:=a - 8;
3:  
d:=a * 9;
END_CASE;
           

帶else部分

CASE abc OF
1: 
b:=a + 5;
2:  
c:=a - 8;
3:  
d:=a * 9;

  ELSE

d:=999;

END_CASE;
           

4、仿真:

  1. 生成程式,選擇仿真模式,将程式錄入仿真PLC中:

    步驟:

    ①PLC-仿真模式;

    ②生成-生成所有項目;

    ③連接配接-将項目傳到PLC-點選運作。

施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解

2. 将abc分别指派1,2,,3,4,測試執行情況;

右擊程式abc的變量,修改值。

施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解
abc為1的情況下,b等于5,執行了對應1:便簽的程式。
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解
abc為2的情況下,c等于-8,執行了對應2:便簽的程式。
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解
abc為3,a為3的情況下,d等于27,執行了對應3:便簽的程式。
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解
我們增加一段ELSE的程式,初始化設定abc1,情況如下圖。
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解
将abc為4,d等于,999,執行了對應else部分程式
施耐德UnityXLpro結構指令CASE的使用和了解施耐德UnityXLpro結構指令CASE的使用和了解

五、總結

  整個測試下來,就實作了CASE的程式執行,其實就有點像技術群的網友說,就像程式調用。我這裡沒有用過多複雜程式,因為個人也隻是一個小白,不過在使用過程中遇到CASE這個語句,帶着好奇心研究一下,說不對的地方,希望指正。然後這裡都是講的都是CASE的基礎,其實和網友讨論一下,CASE可以結合INC整型加1的函數做一個輪轉程式,對選擇器加1,然後便簽就按照1,2,3順序去做,而且便簽是可以是整型和數組類型,也可以結合儀表采集,做不同信号資料範圍對應執行不同的資料。對于喜歡ST進行施耐德程式設計的朋友,case應該可以節省你程式設計時候很多時間和精力。

繼續閱讀