光电开关信号检测C程序

光电开关信号检测C程序,第1张

多24光电开关要用374HC165移位寄存器每74HC165接8光电开关了节含手省S52管脚374HC165串联起样接C语言写成:

long

int

a1

clks=0

//了靠期间移位时钟脚先置0

for(

i=0,i<24,i++)

{

clks=1

clks=1//重复目了延时硬件反应速度慢

clks=0

a1=a1<<1

if(datas==1)

//datas74HC165串行数据接入脚

读取1位光电开关

a1=a1|0x1

//末尾置1

else

a1=a1&0xfffffffe

//末尾置0

}

if

(a1==0)

b=1

//此处设光电管受光照,输出0b=1表示全0检测通过

else

b=0

//

b=0表示有错

//面程序用详细写了祥老码吧需要关闭光源再读入次24观点谨哪开关a1=oxffffffff则正确否则出错

经过有光和无光照两次检测判断光电开关好坏了

很简单,我写了个程序,放到编程软件里可以直接转换成梯形图。

I0.0接反馈 I0.1接报警复位 I0.2接总计数器复位 Q0.0接报警

VW100设定反馈厅拆时间, VW100的值要略微大于两个反馈信号的间隔时间。

例如:两个反馈信困陆号间隔5秒,把VW100设定汪伏顷为6秒,就是说当反馈信号间隔大于5秒到达6秒还没有信号时报警输出。VW100的单位是100mS。

C1的值是总反馈。

Network 1

// 把检测信号转换成0和1

LD I0.0

LD C0

CTUC0, 2

Network 2

// 当接受到第一个信号的时候,时间继电器开始工作。

LD I0.0

S M0.0, 1

Network 3

// 复位。断开时间继电器。

LD I0.1

R M0.0, 1

Network 4

// 当CO=0是T37延时动作

LDW= C0, 0

A M0.0

TONT37, VW100

Network 5

// 当CO=1是T38延时动作

LDW= C0, 1

A M0.0

TONT38, VW100

Network 6

// 报警输出

LD T37

O T38

S Q0.0, 1

Network 7

// 报警复位

LD I0.1

R Q0.0, 1

Network 8

// 记录总反馈

LD I0.0

LD I0.2

CTUC1, 0


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

原文地址: https://outofmemory.cn/yw/12371845.html

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

发表评论

登录后才能评论

评论列表(0条)

保存