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
捕魚
主站蜘蛛池模板: 精品久久人人爽人人玩人人妻| 国产精品久久自在自线观看| 最新国产成人剧情在线播放| 69综合网| 午夜一级做a爰片久久毛片| 亚洲国产精品不卡在线| 久久久精品无码一二三区| 91麻豆国产视频| 91福利免费| 亚洲午夜国产片在线观看| 欧美亚洲日韩不卡在线在线观看| 91亚洲免费| 中文字幕不卡免费高清视频| 亚洲日韩Av中文字幕无码| 欧美成人在线免费| 欧美啪啪精品| 久视频免费精品6| 欧美在线黄| 又污又黄又无遮挡网站| 国产97公开成人免费视频| 中国毛片网| 乱人伦视频中文字幕在线| a毛片免费在线观看| 欧美三级视频在线播放| 亚洲视频免费在线| 99视频在线免费| 国产日韩欧美中文| 亚洲男人的天堂在线观看| 免费99精品国产自在现线| 99久久精品视香蕉蕉| 久久99国产精品成人欧美| WWW丫丫国产成人精品| 亚洲精品国偷自产在线91正片 | 欧美啪啪网| 亚洲无码久久久久| 国产午夜小视频| 欧美日韩动态图| 亚洲综合片| 国产精品无码在线看| 国产91熟女高潮一区二区| 午夜福利免费视频| 久久国产香蕉| 91麻豆国产视频| 国产乱码精品一区二区三区中文 | 亚洲无码电影| 欧美α片免费观看| 成人午夜视频免费看欧美| 国产网友愉拍精品| 国产高清不卡| 综合色88| 婷婷色在线视频| 国产幂在线无码精品| 天天干天天色综合网| 狠狠色狠狠综合久久| 欧美一级专区免费大片| 免费黄色国产视频| 亚洲综合激情另类专区| 91色在线视频| 国产欧美视频一区二区三区| 国产99在线| 2022国产91精品久久久久久| 一级香蕉视频在线观看| 精品三级在线| 亚洲无线观看| 欧美精品另类| 99久久婷婷国产综合精| 国产日韩欧美精品区性色| 亚洲天堂777| 无码AV高清毛片中国一级毛片| 婷婷亚洲视频| 国产18在线播放| 日本影院一区| 国产高清国内精品福利| 波多野结衣无码视频在线观看| 欧美怡红院视频一区二区三区| 亚洲丝袜中文字幕| 伊人久久精品亚洲午夜| 色偷偷一区二区三区| 亚洲人成网7777777国产| 日韩一级毛一欧美一国产| 亚洲AⅤ综合在线欧美一区| 亚洲精品欧美日本中文字幕|