在STEP 7 (TIA 博途)中為使程序結構更加清晰,您可以把多個輸入輸出地址定義在一組更高一級的PLC變量中。 那么,可能會發生這種情況,即使您只是訪問了定義為PLC數據類型的單個位地址,但整個輸出Word都會被覆蓋。
在下面的例子中,在一個S7-1500cpu中定義了2個輸出字節Q0和Q1,用戶程序中定義了PLC數據類型 "TypeMotor",包括4個元素,即"powerOn", "powerOff", "speedMin" and "speedMax"(都是Bool數據類型)。
圖1
圖1 數據塊"DB" 的"setFalse"變量和OB 主程序的Network 1 。
輸入變量 "init" 將輸出字節 "QB1" 初始化為255。
DB變量 "DB.setFalse" 被聲明為 PLC 數據類型 "TypeMotor" 并預設值為"False"。
輸出變量 "set" [Q0.0] 也被聲明為 PLC 數據類型 "TypeMotor"。
用"MOVE" 指令將DB變量 "DB.setFalse" 覆蓋輸出變量 "set" [Q0.0]。
這樣輸出點 Q0.0 到 Q0.3將為"False"。
情形1: 數據塊 "DB" 沒有設置優化訪問
圖2
PLC 數據類型以Word 結束??截悢祿Y構時, 在系統中填充位會被插入到數據傳輸中,因為UDT在系統中總是以16位存在。這會導致當您在程序中使用非優化訪問的塊時整個輸出字將會被覆蓋。輸入和輸出區域沒有被優化。 在情形1中 ,輸出字節"QB1" 也被寫入了 "0"。
情形2: 數據塊 "DB" 設置了優化訪問
圖3
輸出字節 "QB1" 沒有被覆蓋為 "0" 并且先前初始化的值被保留 。
注意
如果您用PLC數據類型定義了輸出字節QB0, 如例子中所示,但沒有在設備組態中定義輸出字節QB1或者說QB1不存在的話,那么就會有上面的錯誤提示信息。
補救措施
如果您只是訪問數據結構中的單個數據元素,那么如上所描述的填充比特位對數據傳輸沒有影響。如果您傳送如圖1所示的整個數據結構,那么您應該使用優化的塊訪問。
S7-1200/S7-1500 新生成的DB塊會默認設置為優化訪問。 S7-300/S7-400 數據塊為“標準“的塊訪問屬性 ,如果您將這些塊用于 S7-1200/S7-1500,建議您更改為優化訪問以確保更好的性能。 為此,您打開塊的屬性,并在“屬性”選項卡中啟用“優化的塊訪問”功能。
- 西門子S7-1200 S7通訊 2024-11-21
- 西門子PLC S7-200常見問題故障及解決辦法 2024-11-21
- 西門子PID參數預整定遇到的兩個問題和解決方法 2024-11-21
- 關于西門子S7-1500中央機架的組態控制功能 2024-11-21
- TIA Portal下S7-1500的PROFINET IO系統的組態控制 2024-11-21
- 關于西門子PLC高速輸出端子與第三方伺服驅動器連接 2024-11-21
- 修改參數可以防止PROFIBUS從站掉站? 2024-11-21
- 西門子博途V14 信息中心幫助文件亂碼解決方法 2024-11-21
- 使用 HMI 變量作為塊輸入輸出參數時,為什么有時會出現通過觸摸屏不能修改 CPU 數據 2024-11-21
- 西門子發布體積Zui小的Sinamics完美無諧波GH180高壓變頻器 2024-11-21
- STEP7真要出V5.6了嗎 2024-11-21
- 西門子S7-200Smart與300PLC建立以太網連接的方法 2024-11-21
- 西門子博途V14打開時提示需要需符合fips標準的解決辦法 2024-11-21
- 變頻是什么? 2024-11-21
- 西門子博途V13中通過關鍵字AT實現變量覆蓋 2024-11-21
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415