公司新聞
西門子S7-300移植到S7-1500不同編程語言混用造成的混亂
發布時間: 2024-07-21 22:44 更新時間: 2024-11-22 08:00
觀看西門子S7-300移植到S7-1500不同編程語言混用造成的混亂視頻
今天咱們繼續揭秘PLC S7-300/400程序移植到S7-1500后發生的數據混亂謎團!
有的人發現將S7-300/400程序移植到S7-1500后,一些數據出現了混亂!檢查程序發現兩者完全相同!
那為什么相同的程序結果卻不同呢?下面告訴你答案。
S7-300/400不同的程序段可以使用不同編程語言,我們來看下面這段程序。
程序段2使用梯形圖編程,變量B加上變量C等于變量D,D當前值為5并存儲在累加器1中,而程序段3則使用了語句表編程,裝載變量E到累加器1中,原累加器1中的值即5被壓入到累加器2中,該段程序相當于變量D+E,然后將結果傳送到變量F中,從在線監視中可以看到變量F等于15。
這里盡管使用了不同的編程語言,但是編譯器相同,程序段上下間對系統寄存器的操作是連續的。
我們再看看移植到PLC S7-1500后的程序監控狀態。
相同的程序,但是變量F的值卻等于11了,這里可以看到,在執行程序段1時,將1裝載到累加器1中,然后再傳送到變量A中。執行程序段2后,累計器1中的值未受到影響,然后與程序段3中的變量E相加,結果輸出到變量F中,E等于10, 所以F就等于11了。
造成這種問題的原因是系統發生了變化,S7-1500底層不支持語句表,為了移植的需求,就虛擬了一套系統運行語句表程序,這樣語句表和梯形圖的編譯器就不相同了,表面看上起來與原程序相同,實際上程序段1、3與程序段2是完全獨立的,這樣就造成了運算結果的偏差。
解決這個問題的方法很簡單,就是保證每一個程序段相對獨立,例如在程序段3的開頭,將變量D裝載到累加器1中就可以了。
其他新聞
- 西門子S7-300移植到S7-1500 PROFIBUS主主通信還需要注意什么? 2024-11-22
- 西門子系統的各種“地”是否應該接在一起? 2024-11-22
- 證書——西門子WinCC 與PLC安全通信躲不過的話題 2024-11-22
- 為什么西門子PROFIBUS_FMS通信方式很少使用? 2024-11-22
- 為什么西門子M7系統很快就被淘汰了 2024-11-22
- 西門子S7-300_400移植到S7-1500 什么程序Zui難移植? 2024-11-22
- 西門子安全參數T1和T2的區別,您了解嗎? 2024-11-22
- 西門子S7-300_400移植到S7-1500 _7 項目部分移植怎么考慮通信 2024-11-22
- 西門子伺服工藝控制,遇到網絡問題如何排查、應用哪些工具 2024-11-22
- 西門子S7-300移植到S7-1500為什么LAD都變成STL了? 2024-11-22
- 談到西門子PROFINET報警,你必須要知道的一件事 2024-11-22
- 工業現場存儲卡出現問題應該怎么處理 2024-11-22
- 西門子PROFINET網絡診斷方法 2024-11-22
- 使用西門子WinCC中的Web瀏覽器控件能做什么 2024-11-22
- 西門子S7-1500CPU的X2接口做Profinet需要注意什么? 2024-11-22
產品分類
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415