xiaoxiaocheng_plc/users/main.c

84 lines
2.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************/
// 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从站地址号默认是1D8130主从站选择 0从站
20160710: 新增1路高速脉冲输出Y0PLSY
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){;}
// }
}
}