签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
我想做个延时定时器,里面用time值进行加,发现编译不了。
TIME_DB.SD.value 格式为time
OB1_PREV_CYCLE 格式为time 为PLC的扫描周期
如何实现
TIME_DB.SD.value:=TIME_DB.SD.value +OB1_PREV_CYCLE;
FC_TimeSDSF.txt
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1770875&b_id=4&num=0
将数据类型更换一下试试
扩展指令中的 时间日期 中有相应的指令。
T_ADD
给你一个启发,定时器可以这样做
通电延时( ODT)
FUNCTION FC1 : VOID
TITLE = 'Block Title'
//
// Block Comment...
VERSION: '1.0'
AUTHOR: BAIKAI
NAME: T_ODT
FAMILY: baikai
know_how_protect
VAR_INPUT
//ODT
Input_Condition:BOOL:=false;
FP_1Sec:BOOL;
reset:BOOL;
Timer_Setpoint:INT:=0;
END_VAR
VAR_IN_OUT
Impls_1Sec_Aux:BOOL;
VAR_OUTPUT
Impls_1Sec:BOOL;
Output_Delay:BOOL:=false;
Timer_Actual:INT:=0;
//通电延时,不带保持
Impls_1Sec:= FP_1Sec AND (NOT Impls_1Sec_Aux);
Impls_1Sec_Aux:= FP_1Sec;
IF NOT reset THEN
IF (NOT Input_Condition) THEN
Timer_Actual:= 0;
Output_Delay:= 0;
ELSE
IF (Impls_1Sec AND NOT Output_Delay) THEN
Timer_Actual:= Timer_Actual +1;
END_IF;
Output_Delay:= Timer_Actual >= Timer_Setpoint;
Impls_1Sec:=false;
Output_Delay:= false;
END_FUNCTION
//通电延时,保持
IF Input_Condition THEN
Output_Aux:=1;
IF (NOT Output_Aux) THEN
Timer_Actual:=0;
Output_Delay:=false;
Output_Aux:=false;
//以上为简单思路制作,定时器。 我一般用于数组较多,就是一次做几十个同类的定时器。
这个是我后来写的
FC_Time.txt
测试,然后查看测试结果,如果满足工艺,则可以,否则,调整,程序的目的,是方便阅读和修改,替换。
还有你的程序没有复位功能,完全通过IN 使能和去使能,这个有点不方便。我只要是按照S7定时器的逻辑功能制作的。
其次,你的时基用的是MS 这个比我的好,精度高,范围宽,但我主要考虑,一般ms 级别的,还不如做在中断里,因为大部分都是用秒为最基本单位的,所有用了CPU clock memory 。
方式方法很多,只要用的合适就行。
SCL编程语言,比较难搞啊,
SCL编程要有C语言基础
////////////////////////////
文本结构程序,主要考虑的是程序的逻辑性,从开始到结束,西门子的SCL 跟其他PLC的 STL 类似,起始跟过跟PASCAL更接近些。
当然西门子有针对D7 SYS 也有D7-SYS Block Generator ,这个是用C 语言自己编译,生成CFC 块。
但编制程序,最重要 是可读性,稳定性,以及移植性。
如果用LAD可以更好,更快,更稳定的体系逻辑要求,那何必用SCL 呢。每种语言有它存在的必然性,
举个例子,单按钮启动停止
LAD
以上图,均为单按钮启动/ 停止,
如果单独一个启停逻辑 ,我用STL , 如果要增加更多的启动和停止条件 ,我用LAD ,
如果有很多一样的逻辑处理,例如20个电机一样的启停模式,我用SCL
但移植性最强的是SCL ,毕竟文本结构,形参可以随意定义,中文都可以 ,其次结构比较很合理。
当然阅读通过性,还是LAD 最简单。
A I0.0
FP M2.0
X Q0.0
= Q0.0
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录