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