產品簡介
6ES7340-1CH02-0AE0
SIMATIC S7-300,CP 340 通信處理器 帶 RS-422/485 接口 包括項目組態(tài)包 在 CD 上
詳細介紹
6ES73401CH020AE0西門子CP340通信模塊
6ES7340-1CH02-0AE0 SIMATIC S7-300,CP 340 通信處理器 帶 RS-422/485 接口 包括項目組態(tài)包 在 CD 上 |
SIEMENS西門子
*,質量保證,保修一年
專業(yè)銷售及維修西門子各類工控自動化配件;
:S7-200CN、S7-200SMART、S7-300、S7-400、 S7-1200、S7-1500、ET200、LOGO邏西門子可編程控制器輯控制模塊
西門子HMI人機界面:觸摸屏
西門子變頻器:MM420、MM430、MM440、G110、G120、6SE70
西門子工業(yè)以太網:通訊網卡、通訊電纜、通訊接頭、總線連接器 工控機、交換機、自動化軟件等系型號齊全,快速報價,買我們的產品無憂所值,我們的產品都承諾質保一年,讓您買的省心舒心,用的放心!
跟我一起玩200 smart PLC
關于指針及循環(huán)指令的應用續(xù)3
昨天下午,看到“找答案”版區(qū)有一個網友提問,說200smart的指針如何使用問題,問題鏈接:
并帖出一程序,問題描述非常詳細,給回答省卻許多不必要的誤解。我看了一下,感覺沒有太大的程序錯誤語法,僅僅只是指針地址偏移處出現了地址區(qū)的錯誤,就回了一個貼,居然還被認可了。仔細想了想感覺不妥,似乎在那里出了一點狀況(大汗淋漓)。在回帖時寫了一句需要驗證,又特將此程序剪切下來,回到家里仔細看起來問題還真不少。
網友的原程序: 經過提示,網友已經意識到錯誤的出處。
LD Clock_1s
EU //上升沿
LBL 1 //標記
MOVD &VB200, VD100
MOVW *VD100, VW300
+D +2, VD200 //尋址加2
+I +1, VW400 //循環(huán)+1次
AW> VW400, 10 //大于等于10次
= M0.0
LDN M0.0 //LD M0.0
JMP 1 //標記 //當循環(huán)10次上 調至標記1處,
重新進行循環(huán),顯然無法清除循環(huán)次數。
MOVW +0, VW400 //重置循環(huán)計數器
MOVD +0, VD100 //改此處?? //重置尋址起始位置 //
網友提問的本意應該是想通過指針的地址偏移,將地址自VW200開始的10個數據利用SM0.1標志位的上升沿、指針偏移方式依次寫入到數據存儲地址VW300中。
上述程序的錯誤:
首先,取初始指針地址不能每一個秒脈沖都取一次??梢哉{用SM0.1取一次初始指針地址或者每10個循環(huán)到達后再調用(這個方法我經常用的)。
其次,LDN M0.0,根據網友意圖是當經過10秒后,清除循環(huán)次數及指針返回。但是,如果在此處使用LDN,則意義剛好相反,變?yōu)闆]有到達10始終清零。
再次,調用跳轉指令JMP,顯然有駁于原編程思路,當循環(huán)計數10到達后,調用JMP上跳至標記“1”處,反而無法將循環(huán)次數與指針返回。索性刪除這個跳轉,因為沒有必要,原因是循環(huán)10次到達后,可以通過雙整數指令的減法將指針返回了初始指針地址。
另外,我在初次回復中也強調過關于循環(huán)次數比較指令的應用。如果是采用AW>10時,指針返回需要上移22個字;如果是采用AW = 10時,指針返回上移20個字的地址,實際上僅僅是循環(huán)10次與11次的區(qū)別,如果采用的是AW = 10,后應該數據VW218只能顯示一個掃描周期時間。反之,如果采用的是AW > 10,則有1秒的時間顯示,這個可以根據實際需要選擇。
于是,修改了一下網友的程序,將程序下載到cpu驗證,圖示:
修改后的程序如下所示:
啟用“狀態(tài)圖表”監(jiān)控程序運行情況:
看似一個簡單的指針調用,實際上里面的內涵還是蠻深奧的,曾經有一位*大俠的那一句話,我一直記在心里“書讀的越多,才知道這個書會變的越厚”。希望那位網友能夠看到此貼后改正程序的不合理處,特將此貼通過整理發(fā)上來,讓大家來看看,加深對西門子200(200smart)指針應用的理解。
6ES73401CH020AE0西門子CP340通信模塊