这段代码有什么问题吗?大佬们帮忙指点一下 -凯发网址

worker02
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 283 点
下载积分: 698 分
在线时间: 274(小时)
注册时间: 2008-08-01
最后登录: 2024-10-08
查看worker02的 主题 /
楼主  发表于: 10天前
|
图片:
为什么不能重复计时。问题出在那里。就只能第一次计5s。
sail88
傻傻滴什么都不懂
级别: 略有小成
精华主题: 0
发帖数量: 176 个
工控威望: 277 点
下载积分: 3213 分
在线时间: 403(小时)
注册时间: 2020-08-09
最后登录: 2024-10-08
/
1楼  发表于: 10天前
|
st不是累计时器吗,你都没清
heiheiwodeai
级别: 略有小成
精华主题: 0
发帖数量: 245 个
工控威望: 367 点
下载积分: 974 分
在线时间: 326(小时)
注册时间: 2013-03-26
最后登录: 2024-10-08
/
2楼  发表于: 10天前
|
还不如直接调用时间继电器
worker02
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 283 点
下载积分: 698 分
在线时间: 274(小时)
注册时间: 2008-08-01
最后登录: 2024-10-08
查看worker02的 主题 /
3楼  发表于: 10天前
|
数据类型ton不是延时计时器功能吗?条件断后不是重新计时吗?
worker02
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 283 点
下载积分: 698 分
在线时间: 274(小时)
注册时间: 2008-08-01
最后登录: 2024-10-08
查看worker02的 主题 /
4楼  发表于: 10天前
|
已经可以了!
[ 此帖被worker02在2024-09-29 16:29重新编辑 ]
worker02
级别: 略有小成
精华主题: 0
发帖数量: 107 个
工控威望: 283 点
下载积分: 698 分
在线时间: 274(小时)
注册时间: 2008-08-01
最后登录: 2024-10-08
查看worker02的 主题 /
5楼  发表于: 10天前
|
图片:
if ldp (1,int6_重置) then
     亮点起始位[temp_counts]:=0;  temp_counts:=0;  当前点亮编号:=0; t_on:=0;
  end_if;

  if (int0_功能块使能) and (temp_dtb) then
        
         int2_开始:=true;       temp_dtb:=false;
      
  end_if;
  temp_ldp:=(t_on) and(not temp_ldps);
                        temp_ldps:=t_on;            
if temp_ldp then
            
             int2_开始:=false;  t_on:=false; temp_dtb:=true;

end_if;

if  (int0_功能块使能)and(not int3_停止)then
          
          timer_t (in:=int2_开始,pt:=int7_间隔时间,q:=t_on,et:=out_当前点亮时间) ;

end_if;    

if( 当前点亮编号=0)or(当前点亮编号=int1_灯数长度) then
    
     temp_counts:=0;

end_if;

if (int0_功能块使能)and(当前点亮编号=int1_灯数长度) and (ldp(1,t_on)) then
    
    亮点起始位[当前点亮编号-1]:=0; 当前点亮编号:=0;
  
end_if;

if (int0_功能块使能)and (ldp(1,int5_更改确认))and(int4_随机点灯号>0 and int4_随机点灯号<=int1_灯数长度) then
      
        temp_data:=int4_随机点灯号;
      
end_if;
(*//////////////////////////////////////////////////点亮开始 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*)

if (int0_功能块使能)and(int1_灯数长度>0) and(not int3_停止)and (ldp(1,t_on))and(当前点亮编号    
        if (temp_counts=0) and(  当前点亮编号=0) and  (temp_data=0)then  
        
            亮点起始位[temp_counts]:=1;    当前点亮编号:=temp_counts 1;

                
        else
              
              if( temp_data=0) then
                  
                  temp_counts:=temp_counts 1;    亮点起始位[temp_counts]:=1;      亮点起始位[temp_counts-1]:=0;   当前点亮编号:=temp_counts 1;
                      
              else
                    
                   亮点起始位[temp_counts]:=0;    temp_counts:=temp_data-1;        亮点起始位[temp_counts]:=1;         当前点亮编号:=temp_counts 1;
                              
                   temp_data:=0;
                            
                           end_if;                
                                  
        end_if;    
                      
end_if;    
            
220522
级别: 家园常客
精华主题: 0
发帖数量: 48 个
工控威望: 621 点
下载积分: 3511 分
在线时间: 117(小时)
注册时间: 2021-08-05
最后登录: 2024-10-08
/
6楼  发表于: 9天前
|

    网站地图