历史上的今天
今天是:2025年02月22日(星期六)
2020年02月22日 | 一种改造CM402型贴片机控制系统的方法
2020-02-22 来源:eefocus
简介:该PVS控制系统以PIC16F628单片机为核心,具有集成度高、性能稳定、抗干扰能力强、性价比高等优点。该PVS控制系统已制作成品销售,由苏州翔庆精密机械有限公司等单位经过6个月的联机生产验证,证明该设计方案可靠、可行。利用该PVS控制系统改造CM402型贴片机,预期可提升生产力约4%,具有良好的实用价值。
一、分析
CM402型贴片机现状:
CM402型高速贴片机是由日本松下公司研发和生产,针对某些特定工件、按特定工序进行批量加工的专用设备。传统CM402型高速贴片机在拼接料生产过程中,若出现拼接料检知停止时,停机扫料的时间将影响到生产效率。
改进方法:
通过现场调查和论证并认真分析该设备的工序流程及阅读其用户手册,可将此拼接料检知、停机扫料程序进行技术改造,并在原有电控系统上利用PVS控制系统替代Timer(计时器),可实现接料不停机控制功能,从而可提升其生产效率。本文利用PIC16F628单片机构成PVS控制系统,实现对CM402型贴片机控制系统的改进。
二、硬件系统设计
该PVS控制系统以PIC16F628单片机为核心,由PIC16F628单片机及其外围元器件、电源模块、继电器模块组成,印制电路板和电路原理图如图1、图2所示。

图1 印制电路板

图2 原理图
PIC16F628单片机及其外围元器件
PIC16F628单片机是由Microchip公司生产的PIC系列8位CMOS闪存单片机之一,该系列单片机采用RISC(Reduced Instruction Set Computer)嵌入式结构,具有执行速度高、功耗低、体积小巧、工作电压低、驱动能力强、品种丰富等优越性能。其总线结构采取数据总线和指令线分离独立的哈佛(Harvord)结构,具有很高的流水处理速度。与同类8位单片机相比,程序存储器可节省一半,指令运行速度可以提高4倍左右。PIC16F628单片机封装形式为DIP-18,配合相应程序,该芯片可实现继电器智能控制功能,即配合其他配套电路可构成PVS控制系统,实现CM402型贴片机接料不停机控制功能。JP2为报警信号输入端、JP5为PC机并口解锁信号输入端、SB1、SB2为定时时间调节按钮,LED1~LED6构成定时时间显示电路,单只LED亮表示10s,全部亮表示60s。
电源模块
电源模块设计的质量直接关系到PVS控制系统的稳定性。该控制系统直接利用CM402型贴片机的+24V稳压电源,故采用稳压性能较好的三端稳压集成电路LM7812、LM7805实现两级稳压,为单片机、光电耦合器等元器件提供+5V直流稳压电源。JP1为24V电源输入端,与CM402贴片机相应插座直接连接。
继电器模块
继电器模块由晶体管驱动电路和固态继电器构成。其中VT1、VT2选用C9014型晶体管;欧姆龙TQ2-24V型24V继电器。该模块工作状态由单片机RA4(第3脚)控制,并通过JP3、JP4与CM402型贴片机相应端口相连。
三、软件系统设计
软件环镜基于MPLAB IDE V8.33,编译器HI-TECH C,仿真器ICD2.0烧写PIC16F628芯片实现CM402型贴片机控制系统改造设计功能。
实现程序如下:
#include
__CONFIG(0X1F3C);
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
#define RD (1)
#define WR (1<<1)
#define WREN (1<<2)
#define WRERR (1<<3)
#define FREE (1<<4)
#define CFGS (1<<6)
#define EEPGD (1<<7)
#define START_READ_EEPROM() EECON1=EECON1|RD
#define START_WRITE_EEPROM() EECON1=EECON1|WR
#define ENABLE_WRITE_EEPROM() EECON1=EECON1|WREN
#define DISABLE_WRITE_EEPROM() EECON1=EECON1&(~WREN)
#define SELECT_EEPROM() EECON1=EECON1&(~(EEPGD|CFGS))
#define out RA3
uint js=1;
uchar Key_Num = 0x00,Key_Num1 = 0x00; //本次键码
uchar Key_Backup = 0x00,Key_Backup1 = 0x00; //备份键码
uchar key,temp,key1,temp1;
bit Key_Dis_F = 0,Key_Dis_F1 = 0,OFF_ON=0;
uchar ES=1,ES_DATA=1;
bit a;
ulong z=1;
uchar ES_BC_DATA;
void ms(uint b);
void keyscan(void);
char readByte(char addr);
void writeByte(char addr, char data);
void X_Y_IN(void);
void main()
{ TRISB2=0;
TRISB3=0;
TRISB4=0;
TRISB5=0;
TRISA6=0;
TRISA7=0;
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=1;
RA7=1;
TRISB0=1;
TRISB1=1;
RB0=1;
RB1=1;
TRISB6=1;
TRISB7=1;
RB7=1;
RB6=1;
GIE=1;
PEIE=1;
T1CON=0X01;
TMR1IE=1;
TMR1IF=0;
TMR1L=0XEF;
TMR1H=0XD8;
CM0=1;
CM1=0;
CM2=1;
C2OUT=0;
C2INV=1;
TRISA4=0;
RA4=1;
TRISA3=0;
RA3=1;
a=out=1;
ES_BC_DATA=readByte(0x00);
ES_DATA=ES=ES_BC_DATA;
while(1)
{ asm("clrwdt");//清看门狗
keyscan();
X_Y_IN();
if((C2OUT==1)&(OFF_ON==1)&(a==0))
{ ms(4);
if((C2OUT==1)&(OFF_ON==1)&(a==0))
{ C2OUT=0;
ES_DATA=ES_BC_DATA;
OFF_ON=0;
a=out=1;
z=1;
}
}
switch(ES)
{ case 1:
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=1;
RA7=0;
break;
case 2:
RB2=1;
RB3=1;
RB4=1;
RB5=1;
RA6=0;
RA7=0;
break;
case 3:
RB2=1;
RB3=1;
RB4=1;
RB5=0;
RA6=0;
RA7=0;
break;
case 4:
RB2=1;
RB3=1;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
case 5:
RB2=1;
RB3=0;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
case 6:
RB2=0;
RB3=0;
RB4=0;
RB5=0;
RA6=0;
RA7=0;
break;
}
}
}
void ms(uint b)
{ uchar c;
while(b--)
for(c=123;c>0;c--);
}
void interrupt tmr1(void)
{ if(TMR1IF==1)
{ TMR1IF=0;
TMR1L=0XEF;
TMR1H=0XD8;
js++;
if(js==1000)
{ js=1;
if(OFF_ON==1)
{ if(ES_DATA!=0);
{ ES_DATA--;
if(ES_DATA==0)
{ a=out=0;
}
}
}
}
}
}
void X_Y_IN(void)
{ if((RB0==0)&(RB1==0))
{ ms(2);
if((RB0==0)&(RB1==0)&((z++)==500))
{ temp1=1;
}
}
else
{ z=1;
temp1=0;
}
Key_Num1=temp1;
if((Key_Num1!=0x00)&&(Key_Num1 == Key_Backup1 ))
{ if(!Key_Dis_F1)
{ Key_Dis_F1 = 1;
asm("clrwdt");
if((RB0==0)&(RB1==0))
{ OFF_ON=1;
}
}
}
else
{ Key_Backup1 = Key_Num1;
Key_Dis_F1 = 0;
}
}
void keyscan(void)
{ if((RB7==0)|(RB6==0))
{ ms(10);
if((RB7==0)|(RB6==0))
{ temp=1;
}
}
else
{ temp=0;
}
Key_Num=temp;
if((Key_Num!=0x00)&&(Key_Num == Key_Backup ))
{ if(!Key_Dis_F)
{ Key_Dis_F = 1;
asm("clrwdt");
if((RB6==0)&(RB7==1))
{ ES--;
if(ES<=1)
{ ES=1;
}
if(ES!=ES_BC_DATA)
{ ES_DATA=ES_BC_DATA=ES;
writeByte(0x00,ES_BC_DATA);
writeByte(0x01,out);
writeByte(0x02,RA4);
writeByte(0x03,RB1);
writeByte(0x04,RB0);
writeByte(0x05,z);
}
}
if((RB6==1)&(RB7==0))
{ ES++;
if(ES>=6)
{ ES=6;
}
if(ES!=ES_BC_DATA)
{ ES_DATA=ES_BC_DATA=ES;
writeByte(0x00,ES_BC_DATA);
}
}
}
}
else
{ Key_Backup = Key_Num;
Key_Dis_F = 0;
}
}
char readByte(char addr)
{ char tmpEEPROM;
EEADR = addr;
SELECT_EEPROM();
START_READ_EEPROM();
tmpEEPROM = EEDATA;
return tmpEEPROM;
}
void writeByte(char addr, char data)
{ EEADR = addr;
EEDATA = data;
SELECT_EEPROM();
ENABLE_WRITE_EEPROM();
EECON2 = 0X55;
EECON2 = 0Xaa;
START_WRITE_EEPROM();
ENABLE_WRITE_EEPROM();
while(1 != EEIF);
EEIF = 0;
}
四、结束语
该PVS控制系统以PIC16F628单片机为核心,具有集成度高、性能稳定、抗干扰能力强、性价比高等优点。该PVS控制系统已制作成品销售,由苏州翔庆精密机械有限公司等单位经过6个月的联机生产验证,证明该设计方案可靠、可行。利用该PVS控制系统改造CM402型贴片机,预期可提升生产力约4%,具有良好的实用价值。
史海拾趣
|
目 录 术语 ............................................................... 2 Stratix® FPGA 系列 ....................................... .3 HardCopy® ASIC 系列................................... 11 Arria ...… 查看全部问答> |
|
I/O 0 I/O 1 I/O 2 I/O 3 I/O 4 I/O 5 I/O 6 I/O 7 1st Cycle A0 A1 A2 A3 A4 A5 A6   ...… 查看全部问答> |
|
现在很多网站出现了DIY三菱PLC的活动,本网站也将进行开展一个DIY的活动,使用国产的中颖单片机来进行制作三菱的PLC,同时,也会兼容其他51单片机,希望大家能够积极参与,能够将我们论坛的第一款工业控制板能够顺利做出来。 同时,也希望大家能够 ...… 查看全部问答> |
|
F417在上电的时候液晶显示乱码,显示完后慢慢消失,如果用手摸一下晶振的两个腿就正常显示了,加上外部看门狗后复位几次液晶就正常显示了,有时候上电显示正常,有时候显示乱码几秒后才显示正常数据,有时候一直显示乱码,有看门狗复位乱码一直是闪 ...… 查看全部问答> |
|
随着带宽的不断增加,有线和无线基础电信系统中的放松管制和竞争推动了对于低成本设备解决方案的需求。电信设备电源管理要求中需要应对的挑战不断增加,这就愈加要求设计人员能够为各种数字信号处理器 (DSP)、现场可编程门阵列 ...… 查看全部问答> |
|
本文主要介绍MSP430G2231的内部时钟结构,采用Grace进行该单片机的时钟配置为例,并介绍如何将Grace生成的初始化代码移植到IAR form MSP430中。 MSP430的基础时钟模块提供ACLK、MCLK和SMCLK三种时钟输出,只要搞懂它们的时钟来源(VLOCLK、LFXT1CL ...… 查看全部问答> |
|
各位大神,本人对于单片机了解不多,现在急需一个单片机程序,用来接收GPS接收器传来的数据,然后从中提取时间,能够为给服务器同步时间,谢谢!该程序可以是51单片机实现的,也可以是AVR单片机实现的,谢谢各位的帮忙!谢谢!… 查看全部问答> |
|
PIC12LF1552是Microchip旗下体积最小(2×3 mm UDFN封装)、成本最低且拥有硬件I2C支持的PIC MCU,它还包括一个有支持电容式触摸传感的硬件电容分压器(CVD)的4通道10位模数转换器(ADC)。此外,这款全新MCU还具备3.5 KB闪存程序存储器、256字节R ...… 查看全部问答> |
|
TI ZStack-CC2530历史版本下载,这里收集了CC2530的几个版本,方便各位下载使用。 ZStack-CC2530-2.2.0-1.3.0 : http://yunpan.cn/QXHITIiNAxYxQ ZStack-CC2530-2.3.1-1.4.0 : http://yunpan.cn/QXHI7v5RG9uyH ZStack-CC2530-2.4.0-1.4.0 :&nb ...… 查看全部问答> |




