Mcgs панель оператора инструкция по применению

0. Внедрение проекта

Этот проект представляет собой систему мониторинга, которую наша школа помогает фабрике развивать. Основываясь на духе совместного использования ресурсов и совместного обучения, автор суммирует этот проект с этой статьей. Текущая потребность в этом проекте относительно проста: он в основном обнаруживает 5 каналов информации о температуре и отображает их на экране конфигурации MCGS. Два канала используют цифровые датчики температуры 18B20, а три канала используют термисторы PT100. Далее автор подробно расскажет о нескольких аспектах, таких как MCGS, протокол шины MODBUS и схема привода PT100.

MCGS — это система конфигурации, основанная на платформе Windows, разработанная компанией Beijing Kunlun Tong State Automation Software Technology Co., Ltd. В этом проекте в основном используется встроенная версия MCGS, которая обычно называется сенсорным экраном конфигурации MCGS (рисунок 1). Экран имеет 9-контактный интерфейс и поддерживает протоколы связи RS232 и RS485. (Рисунок 2, пользовательский интерфейс) В этом проекте в основном используется MCGS для использования протокола MODBUS-RTU для сетевого взаимодействия по шине RS485.

Контрольная страница

2. Введение в протокол MODBUS

Протокол связи MODBUS был изобретен Modicon в 1979 году и сегодня является также наиболее широко используемым протоколом промышленной шины.

1. Регистры MODBUS в основном делятся на четыре типа: регистр катушки, регистр дискретного ввода, регистр ввода и регистр хранения.

2. Обычно используемые коды функций

код функции описание Битовые / текстовые операции Количество операций
01H Читать регистр катушки Бит манипуляции Один, несколько
02H Чтение дискретных регистров доступа Бит манипуляции Один, несколько
03H Чтение холдинга Слово манипулирование Один, несколько
04H Читать входной регистр Слово манипулирование Один, несколько
05H Записать регистр катушки Бит манипуляции Один
06H Написать холдинговый регистр Слово манипулирование Один

Все используемые в этом проекте являются читаемыми и записываемыми удерживающими регистрами из 4 областей.В обоих кодах функций используются только 03H (чтение) и 06H (запись).

3. Сообщение MODBUS

MCGS будет продолжать посылать необходимые регистры для чтения сообщений при запуске. MCGS прочитал формат сообщения следующим

Адрес ведомого код функции Высокий начальный адрес регистрации Зарегистрировать начальный адрес низкий Большое количество регистров Низкий номер регистра CRC старший бит CRC младший бит
01 03 00 64 00 01

Нетрудно видеть, что сообщение является сообщением, которое считывает данные регистра с адреса 100H подчиненного устройства № 1. Ответ сообщения следующий:

Адрес ведомого код функции Б Высокий уровень данных Данные низкие CRC старший бит CRC младший бит
01 03 01 00 64    

Чтение, запись и ответ других регистров аналогичны. Смотрите подробностиКод функции MODBUSMODBUS не будет много говорить здесь.

3. STM32 аналоговый протокол MODBUS

Основным чипом управления, используемым в этом проекте, является микроконтроллер серии STM32F103 компании Cortex-M3 core ST.

1. RS485 в TTL

Поскольку встроенный чип позволяет получать уровень TTL, необходимо преобразовать уровень RS485 в уровень TTL. Здесь мы используем микросхему MAX485, схема управления такая, как показано на рисунке ниже, учитывая, что стабильность аппаратного автоматического управления потоком не высока, поэтому в схеме не используется автоматическое управление потоком.

Схема драйвера MAX485

2、MAX485

Диаграмма контактов MAX485 и таблица истинности следующие

Схема контактов MAX485 и внутренняя структура

3. Функция контакта MAX485

Штырь имя особенности
1 RO Выход приемника
2 RE Разрешение на выход приемника, когда разрешено 0
3 DE Прием разрешения на включение, когда 1 разрешен, привод работает
4 DI Вход привода
5 GND земля
6 A 485+
7 B 485-
8 VCC Мощность привода, 5 В

4. Код получения STM32

Поскольку и отправка, и прием выполняются в форме сообщений, и необходимо обеспечить наличие сильной способности различения в случае ошибки связи, таймер TIM2 используется в качестве оценки для получения тайм-аута приема. В программе обработки прерываний последовательного порта определены две статические переменные для подсчета и буферизации данных.

void USART1_IRQHandler()
{
	 static unsigned char zs_cTime; // Сохранить объем данных
	 static unsigned char zs_cData [20]; // Сохранить полученные данные
	unsigned char i;
	OSIntEnter (); // Уведомить систему о введении прерывания
	 USART_ClearFlag (USART1, USART_FLAG_RXNE); // Очистить бит ожидающего флага USARTx
	 if (g_Tset> = 1) // Получение тайм-аута данных
	{
		 g_Tset = 0; // Удалить флаг
		 zs_cTime = 0; // Очистить счетчик
		for(i=0;i<20;i++)
		{
			 zs_cData [i] = 0; // Очистить массив
		}
	}
	 TIM_Cmd (TIM2, DISABLE); // Отключить таймер
	 zs_cData [zs_cTime] = USART_ReceiveData (USART1); // Получить последние данные
	zs_cTime++;
	 g_cUartData = zs_cData; // Чтение данных
	 TIM_SetCounter (TIM2,0); // Перезагрузить значение Time2
	 TIM_Cmd (TIM2, ENABLE); // Запуск таймера
	 OSIntExit (); // Уведомить систему о завершении прерывания
}

TIM2 инициализация

void _init_Time2(void)
{
	 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; //0.0025s прерывать один раз
	TIM_TimeBaseStructure.TIM_Prescaler = 35999;			
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseStructure.TIM_Period = 5;//
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
	TIM_PrescalerConfig(TIM2, 35999, TIM_PSCReloadMode_Immediate);
	TIM_Cmd(TIM2, DISABLE);
	 TIM_ClearFlag (TIM2, TIM_FLAG_Update); // Очистить флаг прерывания
	 TIM_ITConfig (TIM2, TIM_IT_Update, ENABLE); // Включить прерывание
}

TIM2 прерывание

void TIM2_IRQHandler()
{
	 OSIntEnter (); // Уведомить систему о введении прерывания
	 TIM_ClearFlag (TIM2, TIM_FLAG_Update); // Очистить флаг прерывания
	 TIM_Cmd (TIM2, DISABLE); // Отключить таймер
	 g_Tset = 1; // Флаг прерывания
	 OSMboxPost (Uart1Box, & g_Tset); // Флаг отправки
	 OSIntExit (); // Уведомить систему о завершении прерывания
}

4. Блок расчета CRC

unsigned char auchCRCHi[]={
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,
0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,
0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,
0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,
0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,
0x80,0x41,0x00,0xC1,0x81,0x40
};
unsigned char auchCRCLo[]={
0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,
0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD,
0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,
0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,
0x1E,0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,0x14,0xD4,
0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,
0x11,0xD1,0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3,
0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,
0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,
0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,
0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,0x2F,0xEF,0x2D,0xED,
0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,
0x22,0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,0xA0,0x60,
0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,
0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,
0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,
0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,0xBA,0xBE,0x7E,
0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,
0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,
0x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,
0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,0x5C,
0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,
0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4B,0x8B,
0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,
0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,
0x43,0x83,0x41,0x81,0x80,0x40
};
// Длина данных возвращает CRC
unsigned int crc16(unsigned char *puchMsg,unsigned int usDataLen)
{
	unsigned char uchCRCHi=0xFF;
	unsigned char uchCRCLo=0xFF;
	unsigned long uIndex;
	while(usDataLen--)
	{
		uIndex=uchCRCHi^*puchMsg++;
		uchCRCHi=uchCRCLo^auchCRCHi[uIndex];
		uchCRCLo=auchCRCLo[uIndex];
	}
	return(uchCRCHi<<8|uchCRCLo);
}

4. Hengliyuan и PT100 приводной цепи

PT100 — это датчик температуры, обычно используемый в промышленности. Основная характеристика этого датчика состоит в том, что сопротивление термистора PT100 составляет 100 Ом при 0 градусах, а линейность относительно хорошая.

Кривая изменения температуры и сопротивления PT100

Схема 1 схемы управления PT100: выберите режим моста с одним рычагом R1, R2, R3 — сопротивление моста, RL — термистор, когда температура окружающей среды составляет 0 градусов, PT100 показывает значение сопротивления 100 Ом, в это время V1 Разница потенциалов между V2 равна 0. При изменении температуры окружающей среды сопротивление PT100 изменяется соответственно. И V1, V2 также показывают разность потенциалов при линейном изменении PT100 с сопротивлением PT100.

Одноцепной мостовой контур

Преимущество этой схемы — простая конструкция, но недостатки также очевидны: точность сопротивления R1, R2, R3 относительно высока. Поэтому в этом проекте принят второй план.

Схема управления PT100 вторая: принять метод источника постоянного тока, как показано на следующей схеме. Левый конец V0 в цепи представляет собой схему интеграции первого порядка, то есть, однокристальный микрокомпьютер дает форму сигнала ШИМ-модуляции с точной частотой 1 кГц с образованием опорного напряжения на V0. V0 эквивалентен источнику постоянного напряжения, поэтому V1 = (V2-V0) / 2. Из виртуального короткого V1 = V3. Поскольку R3 = R2, V4 = 2V3 = 2V1 = (V2-V0). Из виртуального короткого V2 = V5. Следовательно, Ir6 = (V5-V4) / R6. IR6 = [V2- (V2-V0)] / R6, поэтому IR6 = V0 / R6.

Схема источника постоянного тока

Через вышеуказанную схему источника постоянного тока ток IR6, протекающий через PT100, известен, и сопротивление PT100 может быть получено путем измерения напряжения на V5.

Пять, STM32 внутренние АЦП и DMA

В связи с необходимостью обеспечения характера всей системы в режиме реального времени, метод запроса не может использоваться для чтения данных АЦП, поэтому используется внутренний DMA. Код выглядит следующим образом (открытие RCC опущено).

Процедура инициализации DAM

void init_DMA()
{
	DMA_InitTypeDef DMA_InitStructure;
	 DMA_DeInit (DMA1_Channel1); // Сбрасываем регистр канала DMA 1 на значение по умолчанию
	 DMA_InitStructure.DMA_PeripheralBaseAddr = (u32) & ADC1-> DR; // Базовый адрес периферийного АЦП DMA
	 DMA_InitStructure.DMA_MemoryBaseAddr = (u32) & AD_Value; // Базовый адрес памяти DMA
	 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; // Память как место назначения для передачи данных
	 DMA_InitStructure.DMA_BufferSize = 3; // Размер буфера DMA канала DMA
	 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // Регистр периферийного адреса не изменен
	 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; // Регистр адреса добавочной памяти
	 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // Ширина данных составляет 16 бит
	 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; // Ширина данных составляет 16 бит
	 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // Работа в режиме циклического буфера
	 DMA_InitStructure.DMA_Priority = DMA_Priority_High; // Канал DMA x имеет высокий приоритет
	 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; // Канал DMA x не установлен для передачи из памяти в память
	 DMA_Init (DMA1_Channel1, & DMA_InitStructure); // Инициализировать канал DMA в соответствии с параметрами, указанными в DMA_InitStruct
	 DMA_Cmd (DMA1_Channel1, ENABLE); // Открыть DMA
}

Процедура инициализации АЦП

void init_ADC()
{
	ADC_InitTypeDef ADC_InitStructure;
	 ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
	 ADC_InitStructure.ADC_ScanConvMode = ENABLE;
	  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; // Установить непрерывно
	 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
	 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
	  ADC_InitStructure.ADC_NbrOfChannel = 3; // Обратите внимание на номер 3, указывающий, что собраны три канала ADC1
	 ADC_Init(ADC1, &ADC_InitStructure);
	 
	  ADC_TempSensorVrefintCmd (ENABLE); // Включить канал АЦП для определения внутренней температуры
	  ADC_RegularChannelConfig (ADC1, ADC_Channel_1,1, ADC_SampleTime_239Cycles5); // Обратите внимание на параметры RANK порядка сканирования здесь (то есть 1, 2, 3)
	  ADC_RegularChannelConfig (ADC1, ADC_Channel_TempSensor, 2, ADC_SampleTime_239Cycles5); // Обратите внимание на настройку цикла сканирования
	 ADC_RegularChannelConfig(ADC1,ADC_Channel_Vrefint,3,ADC_SampleTime_239Cycles5);
	 
	  ADC_DMACmd (ADC1, ENABLE); // Включить DMA
	  ADC_ExternalTrigConvCmd (ADC1, DISABLE); // Отключить внешний триггер
	
	  ADC_Cmd (ADC1, ENABLE); // Включить ADC

	  ADC_ResetCalibration (ADC1); // Сброс калибровочного регистра

	  while (ADC_GetResetCalibrationStatus (ADC1)); // Определить, завершен ли сброс

	  ADC_StartCalibration (ADC1); // Начать калибровку

	  while (ADC_GetCalibrationStatus (ADC1)); // Завершена ли калибровка
	 
	 ADC_SoftwareStartConvCmd(ADC1, ENABLE);//
}

Шесть, суд неисправности двигателя

Оценка неисправности делится на два аспекта: первый аспект состоит в том, чтобы подать сигнал тревоги, когда температура превышает определенное заданное значение, но такой системе сигнализации не хватает быстродействия, то есть она возникает, когда измеряемый объект вышел из строя в течение определенного периода времени. Тревога будет подана после обнаружения чрезмерной температуры. Очевидно, что такой метод оценки является нежелательным или может использоваться только в качестве критерия для вспомогательного решения.

Чтобы улучшить продвижение системной оценки, нам нужно найти дифференциал первого порядка и дифференциал второго порядка изменения температуры за период времени.

Предполагается, что на следующем рисунке показана кривая изменения температуры двигателя.

Кривая температуры

Рассчитать вторую производную данных по кривой изменения

Вторая производная температурной кривой

Нетрудно увидеть обратную кривую кривой изменения температуры по второй производной, и нетрудно увидеть, что двигатель в это время заблокирован.

7. Резюме

Этот проект в основном включает протокол связи MODBUS, и АЦП STM32 взаимодействует с DMA для обеспечения многоканального сбора данных. Авторские возможности ограничены, поэтому я хотел бы посоветовать вам.

Although MCGS Chinese Brand Quality and performance are better than other HMIs.

 MCGS HMI how to interface with S7200, Mitsubishi & Omron PLC, and Others PLC, So plchmiservo.com want to share with you the MCGS User Manual, Also this manual will be completely helpful for programmers.

Connecting ‘Cable’ Diagram

>>>01: MCGS HMI to Siemens S7-200/Omron/ PLC Cable connecting Diagram

>>>02: MCGS HMI to Mitsubishi FX Series PLC Cable connecting picture

All the above diagrams are ok. You can solder cables According to the diagram, and you can minimize your cost.

>>>>”PDF Download”

>>Download Google Drive Link

>>>>MCGS HMI Cable connecting Manual  

Link: https://drive.google.com/file/d/1xl5VBMCy9EU7nZB0d6k75QRdRLiZwCiJ/view?usp=sharing

Configuration software on MCGS (Kunlun-state) acquaintance

tags: Automation

About MCGS

  • MCGS full name Monitor (input) and Control (output) Generated System, namely general-purpose monitoring and control system, is a Beijing Kunlun-state Automation Software Technology Co., Ltd. developed based on the Windows platform for rapid construction and generation of PC monitoring system the configuration software system
  • Including MCGS
    — Network formula
    — general formula
    — Embedded
  • Widely used embedded touch screen, to meet the needs of a large number of users, contributes to the development of micro and small equipment

MCGS software installation

  • Login «Beijing Kunlun-state Automation Software Technology Co., Ltd.» official website http://www.mcgs.com.cn
  • «Download Center» download from «MCGS_ embedded version 7.7 (01.0001) complete installation package.»
  • After extracting installation to: under «D \ MCGSE» directory; After installation, the Windows operating system’s desktop shortcut icon two
  • MCGSE configuration environmentEmbedded MCGS for engineering design and development, andMCGSE simulated operational environmentIs designed to run tests and commissioning works, the former is the development environment, which is a simulated operational environment

MCGSE architecture


Intelligent Recommendation

Software design of the state machine

============================================================================ Original works, allowing reproduced.Be sure to identify the original source, as well as the statement reproduced the form o…

Software Construction-State Mode

table of Contents State mode definition Applicable conditions State mode structure Application of state mode in lab3 State mode features State mode advantages and disadvantages advantage Disadvantages…

More Recommendation

State machine of software design

Article directory A brief introduction to the state machine Implementation of state machine switch-case method table-driven approach A brief introduction to the state machine The state machine concept…

MCGS four-way answerer

MCGS four-way answering device The article was written on the night of July 18, 2020, the source file has been uploaded and shared 1. Demand analysis Responders are very common in various intellectual…

Shenzhen Kunlun Tongtai Technology Co., Ltd. (MCGS) is a high-tech enterprise group in China. The company is mainly engaged in the research and development, manufacturing and sales of professional automation products, and provides users with comprehensive industrial automation solutions from hardware to software. 

Since its establishment, the company has continuously introduced excellent MCGS industrial control configuration software and mcgsTpc man-machine interface products. MCGS configuration software includes MCGS embedded version, MSGS general version, and MCGS online version. 

MCGS human-machine interface product models have the following series,
● TPC7062TD
● TPC7062TX
● TPC7062Ti
● TPC1061Ti
● TPC1061Hn
● TPC1162Hi, etc. 

MCGS touch screen TPC7062Ti is a kind of high-performance embedded integrated touch screen with advanced Cortex-A8 CPU as the core (600MHz frequency). It adopts a 7-inch high-brightness TFT LCD display (resolution 800 × 480), and four-wire resistive touch screen (resolution 4096 × 4096). 
At the same time, MCGS embedded configuration software (running version) is pre-installed, with powerful image display and data processing functions. 

As one of trusted MCGS HMI distributors in China for years, OKmarts can provide a broad series of MCGS HMIs at the most competitive MCGS HMI price. If you need a MCGS HMI manual (MCGS HMI user manual PDF, MCGS touch screen manual), please contact our customer service staff. 

Moreover, there’s always an extra bonus for bulk orders!

Понравилась статья? Поделить с друзьями:
  • Сделать жалюзи из обоев своими руками пошаговая инструкция видео
  • Дермовейт мазь инструкция по применению состав
  • Все японские руководство по ремонту
  • Таурин глазные капли показания к применению инструкция
  • Милдронат таблетки для чего он нужен цена инструкция по применению