Plcsim Advanced和Simulink聯合仿真——通過API


西門子官網應用中心鏈接:SIMATIC S7‑PLCSIM Advanced 通過 API 的聯合仿真

摘要:

simulink可實現較為復雜的仿真模型,通過Plcsim Advanced提供的API與simulink實現數據交換,即實現聯合仿真。

0 前言

Plcsim Advanced提供的動態鏈接庫文件支持通過C,C++,C#及FORTRAN語言進行調用,官網示例文件展示了三種與simulink實現聯合仿真的方法。使用的控制對象是一個擺錘的角度控制模型——通過給定風扇在擺弧切線上的牽引力控制擺臂的角度。這里不再對這個示例做過多介紹了,說明數和程序源文件都可以在官網下載。現在簡單介紹一下通過API與simulink進行通訊的使用方法,關於C++的s-function的內部實現后面進行介紹。

1 軟件版本

示例的版本為:

    MATLAB R2016a;STEP V14 Professional;S7-PLCSIM Advanced 1.0;VS2010

本文使用的軟件版本:

    MATLAB R2017b;STEP V15 Professional;S7-PLCSIM Advanced 2.0;VS2017

 示例程序中使用PLCSIM中的PID做控制器,simulink中建立被控模型,在simulink中通過C++實現的S函數調用API與PLCSIM交換數據,PLC內部還整合了OPC UA示例部分等內容,因此看起來內容較多。下面,盡量簡單的介紹一下使用方法。

2 使用方法

(1)在官網下載的三個示例文件夾中,打開“Simulink_Usecase1“——”S-Function“文件夾。

里面包含三個文件如下圖

其中,”PLCSimAdvancedBlockLibrary.slx“是已經封裝完成的函數文件。在simulink中打開文件,並將其復制到自己的simulink文件中。

 

 命令空間中提示如下內容:”[PLCSIM Advanced S-Function]: mdlInitializeSizes“。

(2)打開博途軟件,新建一個項目,添加1511-1PLC:

右鍵,屬性,設置如下:

在”PLC變量“——”默認變量表“中添加兩個變量:

在PLCSIM_Adv中建立一個PLC,命名為”test_1“,將程序下載到PLC中,並啟動仿真;

 

 

 

 (3)打開simulink中調用的函數塊,將名稱更改為"test_1"。

 

 matlab命令空間中提示如下:

 

 將仿真時間設置為”Inf“,啟動仿真。在博途中將plc打到在線狀態,並在監控表中添加兩個變量,可以看到數據狀態。

 

 

注意:如果提示錯誤,可以matlab先關掉,先啟動PLCSIM Adv然后再設置simulink。

將matlab以管理員方式運行。

個人見解, 如有錯誤請指教。需要文件可以私信。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM