该模拟PLC控制系统采用光藕隔离输入,继电器晶体管混合输出。电源适合工业标准的24V直流输入,带反接保护;8路输入:其中2路可以中断,2路可以使用模拟量;8路输出:4路大电流晶体管,其中一路可以PWM,另4路继电器输出,可以直接带市电负载;通信:RS485。该模拟PLC控制系统适用大部分工业控制场合。附件提供基于该PLC控制系统交通信号灯演示程序及PLC控制系统电路。
以下是完整的主程序文件,主c语言程序不要包含main(), 并且要使用大写BEGIN()函数,看头文件就明白了。
#include "EC0608RT.H"
void BEGIN(void)
{
if(LD_B(MW32, BIT6))OUT_Y6;
if(LD_B(MW32, BIT7))OUT_Y7;
STL
tmr1S[1] = 15;
SET_STEP = 1;
S1
// 方向1绿灯状态
SET_Y0;
RST_Y2;
RST_Y4;
SET_Y5;
if(tmr1S[1] == 0){tmr1S[1] = 5; SET_STEP = 2;}
S2
if(timer_c2 >= 50)OUT_Y0;
if(tmr1S[1] == 0){tmr1S[1] = 2; SET_STEP = 3;}
S3
RST_Y0;
SET_Y1;
if(tmr1S[1] == 0){tmr1S[1] = 15; SET_STEP = 4;}
S4
// 方向2绿灯状态
RST_Y1;
SET_Y2;
SET_Y3;
RST_Y5;
if(tmr1S[1] == 0){tmr1S[1] = 5; SET_STEP = 5;}
S5
if(timer_c2 >= 50)OUT_Y3;
if(tmr1S[1] == 0){tmr1S[1] = 2; SET_STEP = 6;}
S6
RST_Y3;
SET_Y4;
if(tmr1S[1] == 0){tmr1S[1] = 15; SET_STEP = 1;}
SEND
MB[0] = PORTB;
MB[1] = PORTD;
MB[2] = tmr1S[1];
MW[3] = Cn[7];
MW[4] = Cn[6];
MW[5] = MADC[1];
return;
}