?? plc.c
字號:
#include <avr/io.h>
#include "global.h"
#include "timer128.h"
#include "mydelay.h"
#include "plcio.h"
//y4系統燈
//y3 合格燈
// y2 不合格燈
//y5 門 1門開,0門關
//
//x5手動開門
//x4手動關門
//x3 光幕信號,0為有物體,1為無物體
//x2 電子秤信號,1為合格 ,0為不合格
//
//
//
u16 ok_delay = 0;
u16 nok_delay = 0;
u08 ok_flag = 0; //1為合格標志,0為不合格標志
void t_cul()
{
if(ok_flag == 1)
{
ok_delay++;
}
else
{
nok_delay++;
}
}
int main()
{
plcio_init();
timer1Init();
timer1SetPrescaler(TIMER_CLK_DIV1 );
timer1SetStartCount( 65530 );
timerAttach( TIMER1OVERFLOW_INT, t_cul );
sei();
while(1)
if(!get_X(X3))
{
OUT_Y(Y5,ON);
}
else if(get_X(X5))
{
OUT_Y(Y5,ON);
}
else if(get_X(X4) && get_X(X3))
{
OUT_Y(Y5,OFF);
}
if(get_X(X2) && ok_flag==0)//合格
{
ok_flag = 1;
ok_delay = 0;
nok_delay = 0;
OUT_Y(Y3,ON);
OUT_Y(Y2,OFF);
}
if(!get_X(X2) && get_X(X3) )
{
if(ok_flag==1)
{
ok_flag = 0;
nok_delay = 0;
ok_delay = 0;
OUT_Y(Y2,ON);
OUT_Y(Y3,OFF);
}
}
if((get_X(X2) & (ok_delay >30) ) || !get_X(X3))//合格開門
{
OUT_Y(Y5,ON);
}
if(!get_X(X2) && (nok_delay >60) && get_X(X3))//不合格開關
{
OUT_Y(Y5,OFF);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -