999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PLC程序在不同品牌機型間的移植方法

2021-05-28 06:18:58胡貞斌
科學技術創新 2021年14期
關鍵詞:程序文本方法

胡貞斌

(上海電器科學研究所(集團)有限公司,上海200063)

當前工業控制現場,可編制程序控制器PLC 大行其道,各種品牌百花齊放。控制過程中許多程序功能相同,可繼承與復用,但由于控制器PLC 的更換,編程人員不得不多次翻譯式的重新編寫與調試。由于編程人員業務水平及編程思路的差異,使得同樣功能存在不同程序表達,阻滯了程序標準化與知識延續的發展,隔斷了優秀程序算法的繼承,同時也給維護者帶來程序識讀障礙,造成時間浪費。

為解決此類問題,對程序功能塊在不同品牌PLC 控制器機型間的移植實現方法的需求變得尤為迫切。

1 程序移植方法的提出

1.1 程序移植定義與特征

程序移植的定義“軟件工程中,程序往往被視為有生命的機體,將源代碼從一種環境下放到另一種環境下運行也可以稱之為移植。”1程序移植需具備如下幾個特征:

1.1.1 源代碼具備可復制性;

1.1.2 源代碼具備通用可識性,更換環境后可運行。

1.2 程序移植方法的提出

根據IEC61131-3 對PLC 編程語言的規定,PLC 控制器適用圖形與文本兩類語言。

梯形圖LD、功能塊圖FBD 及順序功能SFC 三種編程語言均強調圖形的繪制,復制性欠佳,故使用圖形語言編制的程序在不同品牌PLC 間不可移植。

指令表IL 編程語言屬于文本語言,代碼具備可復制性,但是IL 為類匯編語言,為程序執行效率計,程序編程對PLC 硬件地址依賴性很強,程序移植的通用可識性欠佳。

結構文本ST 為類PASCAL 的語言,所使用的語句與關鍵詞符合高級語言的規定,多種PLC 機型均可識別并運行,故ST語言同時滿足程序移植的復制性與通用可識性的特征。

據此提出使用結構文本ST 編程語言編制程序功能塊實現PLC 程序在不同品牌機型中移植的方法。

2 程序移植方法的實現

2.1 方法實驗機型的選擇

當下工業現場工作中的PLC 機型多數均支持IEC61131-3標準,現選用過程控制中出現頻次較高的美國AB ControlLogix1756-L71、法國施耐德M580 系列CPUeP582020、德國西門子S7-300 系列CPU315 作為程序移植方法實現的研究對象。

2.2 程序移植實現過程

本文以模擬量線性轉換功能塊的復制展現PLC 程序移植過程。

模擬量線性轉換的算法公式為:

其中:

Y:儀表所表示的物理量真實值;

X:儀表所對應的PLC 模擬量輸入模塊通道轉換的數字值;

Metermax:儀表所對應的物理量量程最大值;

Metermin:儀表所對應的物理量量程最小值;

Inputmax:PLC 模擬量模塊模數轉換可轉換數字量最大值;

Inputmin:PLC 模擬量模塊模數轉換可轉換數字量最小值;

2.2.1 程序變量定義

序號 功能類型 變量名稱 數值類型 說明1 輸入 AI-Input INT 模擬端口輸入值,對應公式中的X 2 輸入 r-MeterMax Real 儀表最大值(物理值量程)3 輸入 r-MeterMin Real 儀表最小值(物理值量程)4 輸入 I-ModelMax INT 模塊最大值(數字值量程)5 輸入 I-ModelMin INT 模塊最小值(數字值量程)6 輸入 r-HH-Alarm-Set Real 超高報警限值7 輸入 r-LL-Alarm-Set Real 超低報警限值8 輸入 r-H-Alarm-Set Real 高報警限值9 輸入 r-L-Alarm-set Real 低報警限值10 輸出 r-MeterValue Real 儀表實際物理值,對應公式中的Y 11 輸出 b-HH-Alarm Bool 超高報警12 輸出 b-LL-Alarm Bool 超低報警13 輸出 b-H-Alarm Bool 高報警14 輸出 b-L-Alarm Bool 低報警15 輸出 b-Max-Aalrm Bool 儀表上溢報警16 輸出 b-Min-Alarm Bool 儀表下溢報警

2.2.2 功能程序表述

2.2.2.1 首先根據ST 語言語法使用文本文件創建程序,如下:

2.2.2.2 西門子PLC S7-300 CPU315 的程序表述

將上述文本起始增加“FUNCTION "Analog" : Void{S7_Optimized_Access := 'FALSE' }VERSION : 0.1”在文件結尾增加“END_FUNCTION”,以ANSI 編碼保存為“*.SCL”文件。

在西門子編程軟件TIA Portal 中以“外部源文件”導入,使用“從源生成塊”功能,編寫的ST 程序成功導入,可運行。

導入成功的文件有如下特點:

西門子PLC 編譯器對局部變量的引用采用“#”作為前綴;

為保證導入中文注釋可讀,文件應以ANSI 編碼保存。

2.2.2.3 施耐德M580 eP580 2020 的程序表達與導入

施耐德M580 系列使用Unity Pro XL 軟件編程,軟件導入文件支持“*.xdb”類型,其可使用文本文件編輯,但是其在變量描述部分為XML 的描述語言,不符合ST 語言的結構,對于創建的ST 結構文本程序改動較大,故在程序移植過程中選用變量在編程軟件中定義,程序邏輯語句復制粘貼的方式進行。

創建步驟如下:

(1)創建DFB 并命名;

(2)將上述各變量在輸入、輸出相應位置定義;

(3)在DFB 段中增加程序并選擇語言為ST;

(4)將上述ST 程序Begin 以下復制進程序段中;

(5)編譯執行;

編譯過程中發現,施耐德PLC 編譯器對于“//”的單行注釋認為是非法的。

2.2.2.4 AB ControlLogix1756-L71 CPU 的程序表述

AB ControlLogix1756-L71CPU 使用RSLogix5000 軟件進行編程,其對于程序導入文件類型為“*.L5X”,可使用文本文件編輯,但是其對于變量定義及程序均使用XML 結構描述,如使用已編寫好的結構文本程序更改,工作量大且無法保證正確,故AB PLC 采用與施耐德PLC 類似的編程方式,在編譯器內定義變量,邏輯程序通過文本復制方式粘貼進入編譯運行。

創建步驟如下:

(1) 新 建“Add-OnInstructions” 并 選 擇 語 言 為“StructuredText”;

(2)在新建的Add-OnInstructions 功能塊內參數與本地變量中根據輸入輸出類型創建程序變量;

(3)在“Logic”中將上述ST 程序Begin 以下復制進程序段中;

(4)編譯運行。

從程序復制編譯后可見,AB PLC 由于數據結構的關系,其對數據類型是隱形強制轉換,故在程序中出現“INT_To_Real”函數在AB PLC 中無法識別,將函數去除后程序編譯運行正常。

3 程序移植方法總結

3.1 程序移植中存在問題與解決

3.1.1 存在問題

針對上述AB、施耐德及西門子(TIA 系列)三種品牌PLC 控制器在結構文本支持上的相異點,功能程序塊在此三種PLC 控制器間移植存在問題如下:

3.1.1.1 Bool 的表達方式

AB PLC 對Bool 量的結果表示為“0”與“1”,“True”與“False”的表示方法被編譯器認為是非法的,但是在施耐德與西門子(TIA 系列)PLC 中兩種表示方法均被接受。

3.1.1.2 變量的引用方式

AB 與施耐德PLC 在結構文本中對變量的引用是直接字符表達方式,而西門子(TIA 系列)在結構文本中對于全局變量使用引號“""”對于局部變量加“#”前綴表示。

3.1.1.3 浮點數書寫方式

AB 與西門子(TIA 系列)PLC 控制器,浮點數可以寫成整數形式,編譯器可根據變量定義的類型自主轉換,而施耐德PLC則必須寫成浮點數形式。

3.1.1.4 單行注釋的使用

在AB 與西門子(TIA 系列)PLC 中,“//”的單行注釋語句可以使用,而在施耐德PLC 中“//”注釋語句被編譯器認為是非法的。

3.1.2 解決方法

為實現程序功能塊在AB、施耐德及西門子(TIA 系列)三種品牌PLC 控制器間的移植,對上述問題提出如下解決辦法:

3.1.2.1 BOOL 變量賦值避免“True”與“False”的使用,在編程中保持“0”與“1”的數值表達方式,提高程序的通用性。

3.1.2.2 功能程序塊根據IEC6113-3 標準規定的結構化文本格式使用文本文件編程,在西門子等對標準支持比較高的PLC機型中通過導入方式完成,由編譯器自主增加變量引用前綴。

3.1.2.3 浮點數標準化書寫,根據實際使用的小數位書寫浮點數。

3.1.2.4 編程過程中使用“(*…*)”對單行語句進行注釋。

3.2 程序移植方法的總結

根據上述對AB、施耐德、西門子(TIA 系列)三種品牌PLC的移植試驗、異同比較及解決方法提出,可知使用結構化文本ST 編程語言編制程序功能塊在不同品牌機型中移植方法,程序編寫需具備如下幾個條件:

3.2.1 變量命名的標準化

程序變量的命名應遵守匈牙利變量命名法,即變量名由字母、數字、符號組成,并以變量類型的字母開頭,變量名長度小于31 字符,避免“#”符號的使用。

3.2.2 程序注釋的標準化

程序注釋應遵守IEC 61131-3 對注釋的規定,使用“(*…*)”格式。

3.2.3 賦值方式的統一化

程序中對BOOL 量的賦值應使用“0”與“1”的數值化賦值,避免“True”、“False”的使用。

3.2.4 特型函數引用的外置化

在實際編程過程中應避免對有品牌特征的函的使用,盡量使用通用的方法實現。如果是在編程中實現無法規避的函數,需在通用功能程序塊外完成轉換,加強程序塊的通用性。

4 結論

筆者使用結構化文本語言實現了模擬量線性轉換、電機設備的手動控制、多臺水泵組合自動運行等功能程序塊在施耐德(Unity)、AB(RSLogix)、西門子(TIA)中的互相移植,實現功能程序的標準化,在排水泵站與污水處理廠等多個工程中應用,為筆者在工程調試中節省了時間。

通過筆者的工程實踐證實,使用結構化文本ST 編程語言編制程序功能塊實現PLC 程序在不同品牌機型中移植是一種可行的方法。

注釋

1百度百科“移植(科學術語)的解釋”https://baike.baidu.com/item/%E7%A7%BB%E6%A4%8D/4669209?fr=aladdin.

猜你喜歡
程序文本方法
在808DA上文本顯示的改善
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 欧美激情视频一区| 国产男人的天堂| 19国产精品麻豆免费观看| 精品剧情v国产在线观看| 国产永久无码观看在线| 99无码中文字幕视频| 日韩黄色精品| 一级毛片不卡片免费观看| 色噜噜综合网| yjizz国产在线视频网| 在线视频亚洲色图| 免费一级成人毛片| 一本久道久综合久久鬼色| 91久久偷偷做嫩草影院免费看| 亚洲欧美精品一中文字幕| 四虎亚洲精品| 中文字幕亚洲精品2页| 国产日韩av在线播放| 国产精品毛片在线直播完整版| 日韩精品专区免费无码aⅴ| 国产极品美女在线播放| 最新精品久久精品| 久久午夜夜伦鲁鲁片不卡| 天堂av综合网| 大陆精大陆国产国语精品1024| 香蕉eeww99国产精选播放| 亚洲天堂在线免费| 一本大道香蕉中文日本不卡高清二区| 久久久久中文字幕精品视频| 久久这里只有精品国产99| 精品福利视频导航| 亚洲AV无码久久天堂| 成人一级免费视频| 亚洲成人动漫在线观看 | 欧美成人综合在线| 日本爱爱精品一区二区| 国产91色| 色男人的天堂久久综合| 亚洲人成网站18禁动漫无码| 91免费观看视频| 久久不卡精品| 无码一区18禁| 免费一级大毛片a一观看不卡| 91精品国产91久无码网站| 日本道综合一本久久久88| 亚洲福利视频网址| 欧美天堂久久| 国产精品思思热在线| 日韩无码精品人妻| 亚洲av无码成人专区| 一区二区三区成人| 91探花国产综合在线精品| 四虎国产永久在线观看| 青青草原国产精品啪啪视频| www.精品国产| 999精品免费视频| 欧美成人一区午夜福利在线| 免费无码AV片在线观看国产| 99视频国产精品| 亚洲午夜天堂| 最新亚洲人成网站在线观看| www.亚洲一区| 国产在线拍偷自揄拍精品| 九九九国产| 中文字幕 91| 在线日本国产成人免费的| 欧美三级自拍| 久久中文字幕2021精品| 色播五月婷婷| 日本精品影院| 国产一级做美女做受视频| 免费一级成人毛片| 五月天天天色| 精品国产污污免费网站| 18禁黄无遮挡免费动漫网站| 亚洲免费黄色网| 亚洲中文精品人人永久免费| 久久亚洲国产视频| 人妻精品全国免费视频| 大乳丰满人妻中文字幕日本| 成人欧美在线观看| 国产精品久久久久鬼色|