您现在所在的是:

施耐德电气论坛

回帖:33个,阅读:1788 [上一页] [1] [2] [3] [4] [下一页]
5668
26349092
文章数:366
年度积分:390
历史总积分:5668
品牌积分(施耐德):29
注册时间:2014/10/28
发站内信
发表于:2022/2/28 10:09:52
#30楼
第5个接近开关重点处理一下,信号,误动作,隔离等
5476
121111115
文章数:1400
年度积分:559
历史总积分:5476
品牌积分(施耐德):9
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2022/2/28 11:44:51
#31楼
以下是引用微鑫科技2022/2/24 9:36:51的发言:
只需要一个定时器。
sbit INT_1=P1.X//第1通道输入
bit INT_1_B=0;//第一通道输入标志变量
unsigned char INT_1_TIM=0;//第一通道输入计时变量
void main()
{
while(1)
{
if(INT_1==1&&INT_1_B==1)//如果通道1为高电平,且通道标志为1,则清零通道1标志和时间
{
INT_1_B=0;INT_1_TIM=0;
}
if(INT_1==0&&INT_1_B==0)//如果通道1为低电平,且通道1标志为0,则将通道1标志为1,且时间清零
{
INT_1_B=1;INT_1_TIM=0;
}
if(INT_1==0&&INT_1_TIM>=200.......)//通道1-通道5
{
//执行有效动作
}
}
}

void Tim1_ISR() interrupt X //定时器中断服务函数
{
if(INT_1==0&&INT_1_B==1&&INT_1_TIM<200)
{
INT_1_TIM++;
}
.
.
.
.
}
老哥你这个通道输入不消一下抖吗?PLC自己有默认约200MS的滤波时间(可修改),你这个得程序里处理吧,难道你硬件解决了?
2506
yqyyqy 版主
文章数:255
年度积分:50
历史总积分:2506
品牌积分(施耐德):115
注册时间:2006/10/18
发站内信
发表于:2022/2/28 13:03:00
#32楼
是不是没有感应到的那个有随机性?
788
微鑫科技
文章数:1232
年度积分:788
历史总积分:788
品牌积分(施耐德):35
注册时间:2019/11/26
发站内信
发表于:2022/2/28 18:18:17
#33楼
回复 #31楼 121111115
请你仔细看一下,有没有消抖。
遇到SB,请不要和他争辩,认同他所有的观点,让他变成一个大SB。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004