pc8mcu
級別: 探索解密
|
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定義一個1S定時器*) IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) D0 := D0 + 1; IF D0>10 THEN D0 := 0; END_IF; IF D0 := 2 THEN Y0:=FALSE; END_IF; IF D0:=8 THEN Y0:=TRUE; END_IF; END_IF; 以上ST語句編譯通過,但定時器似乎不起左右,因?yàn)樵?,7控制Y0口不起作用,,麻煩幫看一下,在下先謝謝了,!! |
---|---|
|
tingfenghu
級別: 工控俠客
|
沒用過ST,用過其它編程語言,好像沒有這種寫法。 這種多條件選擇,是不是應(yīng)該用if……else if, switch……case,這類寫法。 ST語言,這兩種寫法。 [attachment=141363] [attachment=141364] [ 此帖被tingfenghu在2015-11-10 23:25重新編輯 ] |
|
---|---|---|
|
pc8mcu
級別: 探索解密
|
沒錯,樓上將多情況跳轉(zhuǎn)用 CASE ,這有點(diǎn)像C, C++ 還是講清楚上問題,用的是GW-Work2 環(huán)境選的是 FX2 ST結(jié)構(gòu)化語言 剛開始TON_1()系統(tǒng)出錯,后來在左邊原件FB-模塊中選TON 彈出對話框,進(jìn)行注冊O(shè)K即可用上 可用上面語句了,,但定時器不起作用,啥原因,請教了 |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
|
IF D0 := 2 THEN Y0:=FALSE; END_IF; IF語句條件使用賦值語句,我也是醉了。 IF D0=2 THEN Y0:= FALSE; END_IF; Good Luck ~ |
---|---|
|
pc8mcu
級別: 探索解密
|
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定義一個1S定時器*) D0 := 0; IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) D0 := 1 - D0 ; CASE D0 OF 1: Y0:=TRUE; 0: Y0:=FALSE; END_CASE; END_IF; 太謝謝了,我試上一段語句,意思想讓Y0 在1S 內(nèi)交替亮,滅, 程序執(zhí)行了,亮就不見滅,,我想是不是系統(tǒng)執(zhí)行了一次定時就退出了,,,謝謝 對我 ST語言的知道,,,,謝謝" cvlsam"老兄 |
---|---|
|
pc8mcu
級別: 探索解密
|
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#5S ); (*定義一個1S定時器*) IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) Y0:=TRUE; END_IF; TON_2(IN:= NOT TON_2.Q ,PT:= TIME#5S ); (*定義一個1S定時器*) IF TON_2.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) Y1:=TRUE; END_IF; 又試驗(yàn)上面一段ST代碼,,可以運(yùn)行,,本來我的意思是想程序是順序執(zhí)行的, Y0 先亮,,Y1后亮實(shí)際情況是,Y0,Y1同時定時亮。更說明定時器用完就完了,不能循環(huán)使用,如何才能循環(huán)定時呢?謝謝 |
---|---|
|
pc8mcu
級別: 探索解密
|
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定義一個1S定時器*) IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) D0 := D0 + 1; // ---------經(jīng)過反復(fù)實(shí)驗(yàn)- IF D0>10 THEN //----------- D0 := 0; //----------- END_IF; //----------該段無法時間,因?yàn)檫@段代碼只運(yùn)行一次,,不能循環(huán)???? END_IF; |
---|---|
|
pc8mcu
級別: 探索解密
|
TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定義一個1S定時器*) D0:=0; IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) D0:= D0+1; IF D0>4 THEN D0:=0; END_IF; CASE D0 OF 1: Y0:=TRUE; 2: Y0:=FALSE; END_CASE; END_IF; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// TON_1(IN:= NOT TON_1.Q ,PT:= TIME#1S ); (*定義一個1S定時器*) IF TON_1.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) Y0:=TRUE; END_IF; TON_2(IN:= NOT TON_2.Q ,PT:= TIME#2S ); (*定義一個1S定時器*) IF TON_2.Q THEN (*定時時間到,D0++,D0大于10,那么清零*) Y0:=FALSE; END_IF; ================================================================= 上段不能實(shí)現(xiàn)Y0 隔1 秒亮, 滅一次, 而 下面一段實(shí)現(xiàn)了 Y0 反復(fù)的亮滅 ,實(shí)現(xiàn)了循環(huán),,能看一下原因,講一下原理嗎??謝謝 |
---|---|
|
小小一電工
每天一點(diǎn)點(diǎn) 加油 你可以的!
級別: 工控俠客
|
這是 上位機(jī)通訊語句? |
|
---|---|---|
|