如何解决plc断电触发下降沿的问题?

如何解决plc断电触发下降沿的问题?,第1张

你是想问如何解决plc断电触发下降沿后的信号保存,还是想问如何解决线路断电瞬间给plc断电?如果是断电瞬间,给PLC断电这个挺难搞的,这个你最好用24V供电的PLC,因为开关电源装有延时电容,断电瞬间,开关电源的电容会继续输出,电压缓慢下降,这个下降过程中,PLC不会立刻停止运行,会记录下停电后的工作信号,然后可以用继电器将220V的信号转接到PLC的输入。这样断电时,PLC的输入会立刻停止,而PLC在电容的作用下还是运行状态,能检测到这个输入点的状态,并可以运行程序,将你这个状态保存或者计数之类的。

用一个PNP(或NPN)三极管起到开关的作用.控制单片机的电源.E极接5VCC,C极通过限流电阻接单片机的VCC,另外,加一个开关S,一端接单片机的VCC,一端加外加5VCCC.B极接单片要的P1.0口,程序的思路是:按下开关S,使单片机运行程序从P1.0输出低电平,使三极管导通,单片机供电,按然放开开关S.这时,单片机内部的定器启动,进行定时,定时隐时现2个小时后,中断使P1.0口输出低电平,本极管截止,单片机断电.程序如下:

/*用定时器定时2小时后控制单片机断电,

作者:w418781840,日期,2008.5.26*/

//========声明区====================

#include <reg51.h>

#define count 50000//定时50MS

#define TH_M1 (65536-count)/256

#define TL_M1 (65536-count)%256

unsigned long count_T0 //中断计数

sbit p1_0=P1^0 //声明P1.0口

//====主函数==============

main()

{ EA=1 //开总中断

ET0=1 //定时器中断

TMOD=0x01 //工作方式1

TH0=TH_M1 //赋值

TL0=TL_M1 //启动

TR0=1 //输出低电平,给单片机供电

p1_0=0 //等待

while(1)

}

//======定时器中断函数=======

void timer(void)interrupt 1

{ TH0=TH_M1 //重新赋值

TL0=TL_M1

if(++count_T0==144000) //144000*50MS=2小时

TR0=0 //关闭定时器

p1_0=1 //2小时到,输出低电,断电.

}

/////////////////////////////////////////


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11222981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存