模擬量處理程序上疑問
劉玉蓉
發(fā)布于2014-10-20 18:01
53
0
標(biāo)簽:
現(xiàn)在想將S7-200模擬量AIW0進(jìn)過運(yùn)算得到的值和上位機(jī)VD308將行PID的運(yùn)算,然后再輸出給AQW0輸出。
現(xiàn)在在處理上有些問題,就是輸出口上AQW0一直為+6400,見圖2,請教一下為什么?程序上是否有問題,或者大家是否有更優(yōu)的程序可以參考一下。
詳細(xì)程序:LD SM0.0
LPS
CALL Scale_I_to_R, AIW0, +32000, +6400, 100.0, 0.0, VD208
ROUND VD208, VD300
AENO
DTI VD300, VW304
LRD
CALL PID0_INIT, VW304, VD308, VW400
LRD
ITD VW400, VD400
LPP
CALL Scale_R_I, VD400, 100.0, 0.0, +32000, +6400, AQW0
梯形圖見圖1
圖片說明: 1,圖1 2,圖2
佳答案
首先:你的PID回路是如何配置的?如果給定值和過程變量都是0-100,這個(gè)PID調(diào)用勉強(qiáng)通過(語法沒問題)但是控制分辨率為1%,顯得太粗了。如果用0-32000的過程變量,則可能是1/32000或者1/4096(12位精度)。
其次:VW400的取值范圍,如果你在輸出范圍設(shè)定了0-100,這樣寫也是語法正常,但是輸出的粗糙與輸入同理,不再贅述。如果用如果用0-32000的過程變量,則可能是1/32000或者1/2048(11位精度)。
其三:況且R轉(zhuǎn)I的過程中,誤在實(shí)數(shù)輸入位置使用了整數(shù),造成數(shù)據(jù)非法。子程序?qū)⒃摂?shù)字按0.0來處理。
建議:認(rèn)真閱讀手冊或搜索前面關(guān)于PID應(yīng)用的帖子。