亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向PLC產(chǎn)品的自動化測試系統(tǒng)平臺設(shè)計與實現(xiàn)

        2022-06-24 07:51:24王新月張秀明
        自動化儀表 2022年5期
        關(guān)鍵詞:測試報告嵌入式軟件配置文件

        王 奚,王新月,李 航,張秀明

        (1.北京和利時智能技術(shù)有限公司,陜西 西安 710075;to 2.寧波和利時信息安全研究院有限公司,陜西 西安 710075;3.中國移動通信集團黑龍江有限公司,黑龍江 哈爾濱 150028)

        0 引言

        可編程邏輯控制器(programmable logic controller,PLC)作為通用自動控制裝置,具有較強的工作環(huán)境適應(yīng)性,深受工業(yè)控制界的歡迎。PLC在現(xiàn)代工業(yè)的各個領(lǐng)域都有應(yīng)用,已成為自動化控制的核心[1]。國際上各大PLC制造企業(yè)都傾全力研發(fā)滿足工業(yè)生產(chǎn)需要的PLC,并形成系列化產(chǎn)品,從而在不同領(lǐng)域和地區(qū)構(gòu)建各自的市場[2]。

        隨著工業(yè)4.0概念的推出,各領(lǐng)域都在飛速發(fā)展,各類應(yīng)用場景越來越復(fù)雜。工業(yè)控制領(lǐng)域中PLC所需要適應(yīng)的場景、具備的功能越來越多,對PLC產(chǎn)品的測試工作發(fā)起挑戰(zhàn)。PLC產(chǎn)品的新功能和新應(yīng)用場景的測試工作會占用更多的時間。而在保證既有功能的產(chǎn)品質(zhì)量的前提下提高這部分測試工作的效率,是困擾業(yè)界的難題。

        近年來,自動化測試領(lǐng)域蓬勃發(fā)展。相對于手工測試,自動化測試具有以下優(yōu)點[3-4]:①提高測試效率;②實現(xiàn)更多高難度繁瑣操作的測試;③解放人力資源;④增強測試穩(wěn)定性。這些優(yōu)勢正是PLC測試所需要的。PLC測試需要完整的自動化測試系統(tǒng),實現(xiàn)從上到下、從軟件到硬件的自動化測試平臺。

        1 自動化測試平臺的被測對象

        PLC控制器與編程軟件通常是捆綁在一起的。編程軟件的功能與PLC本身的功能緊密相連[5]。所以通常對PLC產(chǎn)品系統(tǒng)的測試,也包括對PLC編程軟件的測試。除了PLC編程軟件以外,PLC控制器根據(jù)功能的實現(xiàn)又可劃分為PLC嵌入式軟件和PLC硬件。因此,自動化測試平臺的被測對象分為以下3個部分。

        ①PLC編程軟件(基于IEC 61131-3標(biāo)準(zhǔn))。對PLC 進行編程的軟件,一方面能以程序?qū)崿F(xiàn)過程的自動化,另一方面又能對PLC 的工作狀態(tài)進行監(jiān)控[5]。該軟件具有編譯、下裝、仿真、多種數(shù)據(jù)類型變量、硬件配置、多種編程語言等功能。

        ②PLC嵌入式軟件。PLC主要由嵌入式軟件實現(xiàn)部分功能,如Modbus、自由協(xié)議、文件操作、多任務(wù)等。

        ③PLC硬件。PLC主要由硬件實現(xiàn)的有DI、DO、AI、AO等通道。

        2 PLC編程軟件自動化測試的設(shè)計與實現(xiàn)

        2.1 PLC編程軟件自動化測試設(shè)計方案

        PLC編程軟件的自動化測試由Python語言實現(xiàn)。Python是面向?qū)ο蟮哪_本語言,具有跨平臺、可擴展、解釋性強、易學(xué)易讀等特性[6]。Pywinauto是基于Python、用于自動化測試的腳本模塊,主要功能是實現(xiàn)對Windows標(biāo)準(zhǔn)控件操作的可編程處理,包括對窗口的指定、鼠標(biāo)或鍵盤操作、獲得控件屬性等[7]。對PLC編程軟件測試的實現(xiàn)就是通過Pywinauto等工具對界面中各個控件的識別,并模擬鼠標(biāo)和鍵盤對這些控件進行操作,從而實現(xiàn)對編程軟件的自動化測試。

        目前,B/S體系的軟件自動化測試比較成熟。它的表示層為通用的瀏覽器[8]。現(xiàn)有的工具Selenium可以完全模擬用戶在瀏覽器上進行各種Web操作[9]。而PLC編程軟件作為C/S體系的軟件,控件標(biāo)準(zhǔn)程度較低,自動化測試的轉(zhuǎn)化難度遠(yuǎn)高于B/S軟件,使用到的Pywinauto等工具也不如Selenium成熟、穩(wěn)定。因此,實現(xiàn)方案需要在現(xiàn)有工具的基礎(chǔ)上封裝一些對控件常用的操作方法,并在測試用例轉(zhuǎn)化時調(diào)用這些方法,從而大大提高轉(zhuǎn)化效率以及對后續(xù)軟件升級的兼容性。

        例如,將右鍵菜單頁面的選擇封裝成1個函數(shù),如下所示。

        def right_menu_select(*args):

        """

        右鍵選擇 AT最多存在兩級右鍵菜單,支持兩級

        @Time : 2020/3/6

        @Author : wangxi

        :param args: 右鍵菜單元素名稱或序號(str/int),逗號隔開,兩種類型可組合使用:

        """

        m = 0

        #標(biāo)志位

        if len(args) > 2:

        #輸入大于兩個元素報錯

        raise TypeError(' right_menu_select takes 2 positional argument but {} were

        given'.format(len(args)))

        for input_name in args:

        if isinstance(input_name, int):

        #輸入為int型

        Keyboard.SendKeys('{VK_DOWN %d}' % input_name)

        Keyboard.SendKeys('{ENTER}')

        elif m == 0:

        #輸入為str型且第一級菜單

        popwindow.child_window(title=input_name,

        control_type="MenuItem").click_input()

        elif m == 1:

        #輸入為str型且第二級菜單

        popmenu.child_window(title=input_name,control_type="MenuItem").click_input()

        m = 1

        測試用例中,使用到右鍵菜單選擇操作時,調(diào)用這個函數(shù)并傳入相應(yīng)參數(shù)即可。如后續(xù)編程軟件升級導(dǎo)致右鍵菜單控件的識別或用法發(fā)生變化,則直接修改該函數(shù)即可。這對于不斷升級的軟件的測試非常重要。類似的基礎(chǔ)方法封裝有80個。這些方法構(gòu)成了測試框架的基礎(chǔ)層。

        為了滿足常用業(yè)務(wù)場景,基礎(chǔ)方法的上一層作了業(yè)務(wù)方法的封裝,例如變量、硬件配置、程序組織單元(program organization unit,POU),包括程序、功能塊、函數(shù)等。根據(jù)業(yè)務(wù)的復(fù)雜程度,每種業(yè)務(wù)封裝了幾個至幾十個方法不等。這2層方法的封裝不僅可以提高測試用例轉(zhuǎn)化為腳本語言的轉(zhuǎn)化效率,還可大大降低后續(xù)的維護成本。

        業(yè)務(wù)層的上一層是用例層。用例層中用到的一些便利方法如下所示。

        ①ddt數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)將測試數(shù)據(jù)和測試代碼分開,提高了代碼轉(zhuǎn)化及執(zhí)行效率,并且便于后期維護。

        ②ini配置文件。其存儲全局變量等信息,便于后期維護。

        ③異常截圖。在用例執(zhí)行失敗或錯誤后截圖保存,可方便定位分析問題。

        ④測試記錄寫入。該功能可以將每條用例的執(zhí)行結(jié)果自動填入記錄測試結(jié)果的excel文檔;測試結(jié)果自動填入pass/fail/error;執(zhí)行人自動填入robot。這可以替代手動整理測試記錄的工作。

        2.2 PLC編程軟件的測試框架及測試報告

        測試框架采用了Python的單元測試框架unittest。unittest具有能夠組織、管理和執(zhí)行多個測試用例,以及提供豐富的斷言方法等優(yōu)點。每條測試用例寫在1個testcase中,執(zhí)行過程包括測試前準(zhǔn)備環(huán)境的搭建(setUp)、執(zhí)行測試代碼、還原測試后環(huán)境(tearDown),以及根據(jù)斷言輸出pass和fail的測試結(jié)果。測試報告使用了HTMLTestRunner,將testcase中斷言的結(jié)果打印在報告中并進行數(shù)據(jù)統(tǒng)計。

        3 PLC嵌入式軟件自動化測試的設(shè)計與實現(xiàn)

        3.1 PLC嵌入式軟件自動化測試的設(shè)計方案

        嵌入式軟件測試采用對PLC編程軟件的操作與編寫自動化測試工程相結(jié)合的方式實現(xiàn)。對PLC編程軟件的操作采用了與2.1節(jié)中PLC編程軟件自動化測試相同的方法實現(xiàn),使用了Python語言。自動化測試工程是使用PLC編程軟件編寫的自動化測試工程。每個工程可以測試嵌入式軟件某項功能。

        例如,Modbus主站功能的自動化測試工程。工程中組態(tài)邏輯如下。

        ①使用Modbus寫的功能碼向從站(從站通常選用PLC控制器,需配合組態(tài)相關(guān)從站邏輯)寫隨機數(shù)。

        ②用Modbus讀取功能碼讀回寫入地址上的數(shù)據(jù)。

        ③對比每個讀取與寫入的數(shù)據(jù):如相同,則繼續(xù);如不同,則記錄相關(guān)錯誤信息以及錯誤次數(shù)。

        ④工程中,組態(tài)以邏輯①~邏輯③的方式測試所有PLC支持的Modbus功能碼后,由主站通過通信方式通知從站切換到下一種通信參數(shù)(波特率校驗位停止位的組合);同時,主站切換到下一種通信參數(shù)。

        ⑤切換后,再次進行上述的通信測試,在整個過程中統(tǒng)計丟包率及記錄診斷異常信息。

        自動化測試工程是整個嵌入式軟件自動化測試的核心,可以實現(xiàn)對嵌入式軟件功能的測試。但每個自動化測試工程僅實現(xiàn)了針對單一功能的自動化測試。為了將這些單一功能的測試串聯(lián)起來,就需要對PLC編程軟件進行自動化操作,為每個工程編寫配置文件,使Python按照配置文件的內(nèi)容進行一系列操作。例如工程打開關(guān)閉、工程下裝監(jiān)視在線讀寫數(shù)據(jù)。這就實現(xiàn)了各個子功能測試之間的銜接。

        3.2 PLC嵌入式軟件自動化測試的工作流程

        嵌入式軟件自動化測試工作流程如圖1所示。

        圖1 嵌入式軟件自動化測試工作流程

        嵌入式軟件自動化測試工作流程主要通過解析配置文件并按照配置文件描述的信息執(zhí)行操作步驟,例如下裝在線任務(wù)啟動讀寫變量等。每個配置文件執(zhí)行完成后會產(chǎn)生1個pass或fail的測試結(jié)果。所有配置文件執(zhí)行完成后生成測試報告。

        4 PLC硬件自動化測試的設(shè)計與實現(xiàn)

        4.1 PLC硬件自動化測試的設(shè)計方案

        PLC硬件自動化測試方案采用硬件測試和軟件界面相結(jié)合的方式。

        ①硬件測試。國家儀器公司(National Instrument,NI)板卡具有精度高、可靠性高、用戶接口功能強大等特點[10]。硬件通道測試采用NI板卡,通過對PLC各輸出通道的采集及輸入通道的輸出控制等實現(xiàn)對PLC硬件功能的測試。

        ②軟件界面。LabVIEW是基于圖形編譯語言的虛擬儀器軟件開發(fā)平臺。其表現(xiàn)形式和功能類似于實際的儀器,特別適用于實驗室等需要經(jīng)常改變儀器和設(shè)備參數(shù)及對信號進行分析研究的場合[11]。系統(tǒng)采用LabVIEW實現(xiàn)與控制器數(shù)據(jù)交互,與NI板卡數(shù)據(jù)的交互、控制,界面圖形的組態(tài),以及數(shù)據(jù)處理等功能。

        硬件自動化測試環(huán)境如圖2所示。

        圖2 硬件自動化測試環(huán)境

        軟硬件結(jié)合使用實現(xiàn)了對AI/AO精度、穩(wěn)定度、通道間串?dāng)_以及DI/DO邏輯等功能的測試驗證。

        4.2 PLC硬件自動化測試的測試流程

        PLC硬件自動化測試流程如下。

        ①使用PLC編程軟件編寫實現(xiàn)相關(guān)功能的標(biāo)準(zhǔn)化測試工程。LabVIEW軟件調(diào)用接口程序下裝組態(tài)工程到PLC,使PLC硬件通道實現(xiàn)相應(yīng)功能。

        ②LabVIEW軟件控制NI板卡提供可編程控制器輸入、輸出信號、通信等功能信號,同時通過動態(tài)連接庫與PLC進行數(shù)據(jù)交互,獲取測試結(jié)果。

        ③LabVIEW軟件控制器完成測試過程,生成測試報告,保存測試數(shù)據(jù)。

        5 流程框架設(shè)計及測試場景

        完整的測試流程是通過Jenkins調(diào)度完成的,具體按照以下步驟進行自動觸發(fā)調(diào)度。

        ①執(zhí)行腳本自動安裝最新提測軟件(編程軟件)及升級PLC的固件版本(嵌入式軟件),為后續(xù)測試作好準(zhǔn)備。

        ②執(zhí)行UI Test實現(xiàn)對PLC編程軟件測試,生成測試報告。

        ③執(zhí)行Firmware Test,實現(xiàn)對控制器嵌入式軟件的測試,生成測試報告。

        ④將以上生成的所有測試報告通過郵件形式發(fā)送給相關(guān)人員。

        根據(jù)測試需要,步驟②和步驟③可以都執(zhí)行,也可以選擇性執(zhí)行其中1個。

        PLC自動化測試系統(tǒng)平臺如圖3所示。

        圖3 PLC自動化測試系統(tǒng)平臺示意圖

        PLC自動化測試系統(tǒng)平臺目前已在和利時LE、MC、LK系列產(chǎn)品以及編程軟件AutoThink上測試、使用。根據(jù)測試需要,測試應(yīng)用場景分以下3種。

        ①每日構(gòu)建:篩選部分自動化測試用例,以確保每日構(gòu)建軟件版本的可用性。

        ②單元測試:篩選部分自動化測試用例可覆蓋基本功能,確保提交集成測試前所有基本功能可用。

        ③集成/系統(tǒng)測試:根據(jù)版本變更范圍,執(zhí)行全部或大部分自動化測試用例,確保除新增/修改功能以外的功能正常。

        6 結(jié)論

        本文設(shè)計并實現(xiàn)了以PLC產(chǎn)品及其編程軟件為對象的自動化測試系統(tǒng)平臺。該平臺對3個不同的被測對象選取了不同的測試方案,并使用Jenkins將各部分流程串接起來,實現(xiàn)了整體的自動化測試。該平臺可滿足每日構(gòu)建測試、單元測試和集成測試這3種測試場景的使用。該平臺的投用大大提升了PLC產(chǎn)品的測試效率及產(chǎn)品穩(wěn)定性。

        猜你喜歡
        測試報告嵌入式軟件配置文件
        提示用戶配置文件錯誤 這樣解決
        關(guān)于戶外體育游戲?qū)τ變后w能影響的調(diào)查研究
        甘肅教育(2021年5期)2021-12-29 15:41:24
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機root密碼怎么辦
        實時嵌入式軟件的測試技術(shù)
        電子測試(2018年10期)2018-06-26 05:54:08
        全景相機遙控器嵌入式軟件V1.0 相關(guān)操作分析
        電子制作(2017年17期)2017-12-18 06:40:56
        百變星君:ROLLINGSTONE 變色龍紫破風(fēng)車架測試報告
        SSAB Hardox悍達450材料輕型自卸車廂體測試報告
        專用汽車(2016年9期)2016-03-01 04:17:19
        基于Eclipse的航天嵌入式軟件集成開發(fā)環(huán)境設(shè)計與實現(xiàn)
        国内自拍情侣露脸高清在线| 欧美性爱一区二区三区无a| 男男互吃大丁视频网站| 国产成人综合精品一区二区| 狠狠人妻久久久久久综合蜜桃| a级黑人大硬长爽猛出猛进| 999久久久免费精品国产牛牛| 开心五月激情五月天天五月五月天 | 成av人片一区二区三区久久| 久久久精品亚洲一区二区国产av| 成在线人免费视频| 宅男噜噜噜| 国产成人亚洲合色婷婷| 亚洲处破女av日韩精品中出| 亚洲av无码国产精品色软件下戴 | 日韩精品永久免费播放平台| 中文字幕色资源在线视频| 国产果冻豆传媒麻婆精东| 3d动漫精品啪啪一区二区下载| 国产欧美久久久精品影院| 网站在线观看视频一区二区| 亚洲国产欧美在线观看| 少妇极品熟妇人妻无码| 国产精品一区区三区六区t区| 亚洲成人av在线蜜桃| 国产精品一区二区久久乐下载| 亚洲AV伊人久久综合密臀性色| 97超碰中文字幕久久| 80s国产成年女人毛片| 中文字幕乱码人妻一区二区三区| 亚洲国产综合专区在线电影| 谷原希美中文字幕在线| 国产精品久久国产精品99| 久久99热精品这里久久精品| 视频在线播放观看免费| 欧美伦费免费全部午夜最新| 九九99无码精品视频在线观看| 国产精品人成在线观看| 亚洲一区二区三区精品| 50岁熟妇大白屁股真爽| 亚洲一区二区三区久久不卡|