⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jz01.cpp

📁 典型工业控制
💻 CPP
字号:
#include "jz01.h"
#include "WDXJY.h"
#include "7188X.h"
#include "..\Share\MSHARE.h"
#include "..\Share\MCLIENT.h"
int 	com3_buff=0;
int 	com2_buff=0;
int 	com1_buff=0;
int 	com4_buff=0;

/*LED指示灯*/
unsigned char len;
unsigned char TimerCount;
/*发送定时器*/
int		WDTimerCount=0;
int 	CWTimerCount=0;

/*温度巡检仪*/
const char modbus_wd_rtu= 16;
unsigned char modbus_wd_sbuff_lenght= 0x00;
unsigned char modbus_wd_sbuff_index= 0x00;
unsigned char modbus_wd_sbuff[256];
unsigned char modbus_wd_rbuff_lenght= 0x00;
unsigned char modbus_wd_rbuff[256];
unsigned char modbus_wd_recorded= 0x00;

/*测温柜*/
const char modbus_cw_rtu= 17;
unsigned char modbus_cw_sbuff_lenght= 0x00;
unsigned char modbus_cw_sbuff_index= 0x00;
unsigned char modbus_cw_sbuff[256];
unsigned char modbus_cw_rbuff_lenght= 0x00;
unsigned char modbus_cw_rbuff[256];
unsigned char modbus_cw_recorded= 0x00;

/*************************************************************/
/*定时器*/
void Kernel()
{
	TimerClose();

	/*机组温度巡检仪*/
	WDTimerCount++;
	if(WDTimerCount >= 120) 
	{
		WDTimerCount=0;
		WD_Read();
	}

	/*机组测温发送指令*/
	/*
	CWTimerCount++;
	if(CWTimerCount==20)
	{
	CWTimerCount=0;
	_S7200_SERVER_READ();
	}	
	*/

	TimerCount++;
	if(TimerCount >= 20) 
	{
		TimerCount=0;
		/*指示灯指示*/		
		if(len==0x01)
		{
			LedOn();
			len= 0x00;
		}
		else
		{
			LedOff();
			len= 0x01;
		}				
	}		

	TimerOpen();
}

/*************************************************************/
int main()
{
	Print("Hello 7523.");	
	/*初始化通讯模块*/
	WD_Init();
	/*_S7200_SERVER_INIT();*/
	/*初始化串口*/
	/*_InstallCom(1,9600,8,0,1);/*COM1 测温柜*/
	_InstallCom(2,9600,8,0,1);/*COM2 MODBUS转发 调速器/油压装置/励磁*/
	_InstallCom(3,9600,8,0,1);/*COM3 MB+网桥*/
	_InstallCom(4,9600,8,1,1);/*COM4 温度巡检*/
	/*安装用户定时器*/
	TimerOpen();
	InstallUserTimer1C(Kernel);
	/*开启看门狗 */
	EnableWDT();
	/*开始循环 */
	for(;;)
	{		
		/*测温柜*/		
		/*
		if(IsCom(1))
		{
			com1_buff= ReadCom(1);
			if(com1_buff!=PortError && com1_buff!=QueueEmpty)
			{
				_S7200_SERVER_PROC((unsigned char)com1_buff);
			}
		}		
		*/		
		/*MODBUS_CLIENT协议 读到数据向COM3转发*/		
		if(IsCom(2))
		{			
			com2_buff= ReadCom(2);
			if(com2_buff!=PortError && com2_buff!=QueueEmpty)
			{				
				for(;;)
				{
					com3_buff=ToCom(3,(unsigned char)com2_buff);
					if(com3_buff== NoError)					
					{
						break;	
					}
					else
					{
						Delay(1);				
					}
				}				
			}			
		}	
		/*温度巡检*/
		if(IsCom(4))
		{
			com4_buff= ReadCom(4);
			if(com4_buff!=PortError && com4_buff!=QueueEmpty)
			{
				WD_Proc((unsigned char)com4_buff);
			}
		}
		/*MODBUS_SERVER协议 读到数据向COM2转发*/
		if(IsCom(3))
		{			
			com3_buff= ReadCom(3);
			if(com3_buff!=PortError && com3_buff!=QueueEmpty)
			{
				for(;;)
				{
					com2_buff=ToCom(2,(unsigned char)com3_buff);
					if(com2_buff== NoError)					
					{
						break;	
					}
					else
					{
						Delay(1);				
					}
				}											
				/*7188内MODBUS控制端口*/
				/*1.温度巡检仪器(虚拟设备)*/
				_MODBUS_CLIENT_PROC(modbus_wd_rtu,
												&modbus_wd_recorded,
												&modbus_wd_rbuff_lenght,
												modbus_wd_rbuff,
												(unsigned char)com3_buff,
												&modbus_wd_sbuff_lenght,
												&modbus_wd_sbuff_index,
												modbus_wd_sbuff,
												wd_var_list);			
				/*2.测温柜*/
				/*
				_MODBUS_CLIENT_PROC(modbus_cw_rtu,
												&modbus_cw_recorded,
												&modbus_cw_rbuff_lenght,
												modbus_cw_rbuff,
												(unsigned char)com3_buff,
												&modbus_cw_sbuff_lenght,
												&modbus_cw_sbuff_index,
												modbus_cw_sbuff,
												cw_var_list);
				*/				
			}
		}
		/************************************************/
		/*发送温度巡检数据*/
		/*->BM+网桥*/
		if(modbus_wd_sbuff_lenght>0)
		{
			for(;;)
			{
				com3_buff=ToCom(3,modbus_wd_sbuff[modbus_wd_sbuff_index]);
				if(com3_buff== NoError)					
				{
					break;	
				}
				else
				{
					Delay(1);				
				}
			}																	
			modbus_wd_sbuff_index= modbus_wd_sbuff_index + 1;
			if(modbus_wd_sbuff_index >= modbus_wd_sbuff_lenght)
			{
				modbus_wd_sbuff_lenght=0;
				modbus_wd_sbuff_index=0;				
			}
		}
		/*->PLC*/
		if(WD_sbuff_length>0)
		{
			for(;;)
			{
				com4_buff=ToCom(4,WD_sbuff[WD_sbuff_index]);
				if(com4_buff== NoError)					
				{
					break;	
				}
				else
				{
					Delay(1);				
				}
			}																							
			WD_sbuff_index= WD_sbuff_index + 1;
			if(WD_sbuff_index >= WD_sbuff_length)
			{
				WD_sbuff_length=0;
				WD_sbuff_index=0;
			}
		}		
		/*发送测温数据*/	
		/*	
		if(modbus_cw_sbuff_lenght>0)
		{
			ClearCom(3);
			com3_buff=ToCom(3,modbus_cw_sbuff[modbus_cw_sbuff_index]);
			modbus_cw_sbuff_index= modbus_cw_sbuff_index + 1;

			if(modbus_cw_sbuff_index >= modbus_cw_sbuff_lenght)
			{
				modbus_cw_sbuff_lenght=0;
				modbus_cw_sbuff_index=0;
			}
		}		
		*/				
		/*更新看门狗 */
		RefreshWDT();		
	}
}	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -