CPU226的port1口接威倫觸摸屏,port0口接FPGA控制板,PLC和FPGA控制板之間為PPI通訊。在PLC程序上做一個順序賦值的序列,將VW1000中的值寫給FPGA控制板。如第1s給VW1000賦值a,過625ms后給VW1000賦值b,再過1.5s給VW1000賦值回a。在觸摸屏上設置一個按鈕啟動該順序賦值的序列,PLC在識別按鈕上升沿信號時開始序列。從FPGA控制板捕捉到的信號看,反映出的前述序列延時并不是625ms和1.5s,有時大一些有時小一些。請問這是PPI通訊延時導致的嗎?有什么方法可以解決?
是由兩個方面影響的。
一時定時器本身就是異步更新的。,定時器位和當前值的更新不與掃描周期同步。
另一方面就是串行通訊的延時,可以適當增加通訊波特率。
定時部分改進:
可以使用定時中斷,S7-200有四個定時中斷定時器可以觸發(fā)中斷進程,包含兩個特殊寄存器(SMB34/SMB35)和兩個定時器(T32/T96)中斷。中斷定時計時精確;
特殊寄存器SMB34/SMB35 可設置25ms,對應中斷事件號10、11;
再增加一個計數變量,按鈕上升沿給這個變量復位為0;
定時中斷中,先執(zhí)行計數自加1功能,
當計數次數為 1000/25=40 時,向 VW1000 傳a;
當計數次數為 (1000+625)/25=65 時,向 VW1000 傳b;
當計數次數為 (1000+625+1500)/25=125 時,向 VW1000 傳a;
另外還得注意計數變量什么時間復位呢?
定時器常見問題
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/Smart%20SMS/033.html
你這個所謂的延時是采用那種方式?普通定時器?
如果是,這就“對”了,定時器的刷新除了T32、T96,其它均是異步的,所謂異步就是于plc程序的掃描周期有關了,而程序段由于具體運行程序指令的關系,每一個掃描是存在差異的,這些差異造成你的一些誤解。
另外,HMI設備同樣存在數據顯示上的異步,HMI的變量是通過采集plc數據,這個采集是由用戶設置的采集周期等決定的,mS級的異步同樣屬于正常范疇了。
最后是通訊了,ppi、modbus,乃至IRT等時通訊,自你發(fā)送數據信息到接收到其它設備反饋回路的數據,必須要經歷幾個或者多個周期的過程。
這個過程我理解為2個人的對話,我講一個事情,你從聽到我的講話聲音開始,反饋到你的大腦,經過你的思考再反饋出你回答的聲音,再返回到我的大腦,思考判斷為止的整個過程。
電話:13818569113 15721373211
郵箱:fushidianji@139.com
網址:http://xiangtai88.cn
地址:上海青浦區(qū)北青公路7171號111-112室