84 lines
2.7 KiB
C
84 lines
2.7 KiB
C
/********************************************************/
|
||
// CPU需要:STM32F103--RAM内存不小于48K Flash内存不小于256K
|
||
// 本代码已在STM32F103RDT6、VET6测试通过
|
||
// 编辑日期:20160917
|
||
// editor by 小小晟
|
||
// 网店:shop182385147.taobao.com
|
||
/********************************************************
|
||
20151023:解决远程运行几次才RUN的问题
|
||
20151125:解决用三菱软件下载程序过程中就运行的问题
|
||
20151204:解决当PLC为STOP时,将T、D、C以及M清零,与FX2N的PLC一致
|
||
20160423:新增在线监控写入功能函数,并调试通过
|
||
20160510:新增掉电保存功能,并调试测试通过。优化程序架构
|
||
20160609:新增485 modbus的rtc通信协议,使用usart3
|
||
20160622: D8121从站地址号默认是1;D8130主从站选择 0:从站
|
||
20160710: 新增1路高速脉冲输出Y0,PLSY
|
||
20160914:新增RTC时钟功能
|
||
星期D8019、年D8018、月D8017、日D8016、时D8015、分D8014、 秒D8013
|
||
20160929:新增循环FOR、循环结束NEST 2条指令
|
||
********************************************************/
|
||
|
||
#include "main.h"
|
||
#include "PLC_Dialogue.h"
|
||
|
||
u8 power_down;
|
||
u8 run_flag;
|
||
u16 Timer1[2];
|
||
extern bit_byte PLC_16BIT[12100];
|
||
extern void mosbus_485_USART3(void);
|
||
|
||
int main(void)
|
||
{
|
||
|
||
power_down=10;
|
||
PLC_IO_config(); // PLC输入输出初始化
|
||
RTC_Init(); // RTC时钟配置
|
||
data_init(); // 调用D8000~D8126初始化
|
||
Recover_data(); // PLC断电数据恢复
|
||
USART1_Configuration(); // 串口初始化
|
||
USART3_Configuration();
|
||
PLC_Timer(); // TIMER2 定时器初始化 里面加入一项单相输入编码器
|
||
ADC_init(); // ADC初始化
|
||
NCIC_Confinguration(ENABLE); // 开启中断程序全部等级划
|
||
while(1)
|
||
{
|
||
Err_Lamp_OFF;
|
||
// RST_C(); // 高速计数器
|
||
RTC_Get(); // 时间扫描程序
|
||
|
||
PLC_ProInstructParse(); // PLC指令解析
|
||
|
||
mosbus_485_USART3();
|
||
|
||
if(Send_out)
|
||
TX_Process(); // 发送串口数据
|
||
|
||
//* 低电压检测 断电保持数据
|
||
if(!PVD) //MY PCB== !PVD
|
||
{
|
||
if(Timer1[0]==0)
|
||
Recover_data();
|
||
if(Timer1[0]<=60000)
|
||
Timer1[0]++;
|
||
}
|
||
else
|
||
{
|
||
// all_data[0x180/2]=0;
|
||
if(Timer1[0]>=100)
|
||
{
|
||
PLC_16BIT[80].bytes = 0; //关闭所有IO输出
|
||
PLC_DATA_KEEP();
|
||
NCIC_Confinguration(DISABLE); //关闭中断程序全部等级划分
|
||
Timer1[0]=0;
|
||
}
|
||
}
|
||
//*/
|
||
// if(power_down==0) //判断是不是断电
|
||
// {
|
||
// NCIC_Confinguration(DISABLE); //关闭中断程序全部等级划分
|
||
// PLC_DATA_KEEP();
|
||
// while(1){;}
|
||
// }
|
||
}
|
||
}
|