签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
有50多个电机、电动阀,要做运行多长时间停止多长时间。想用一个子程序来重复调用,试着用时间间隔定时器、递增字节来做,当重复调用时都出现了时间不走、时间一样的问题。
请问有没有好的办法来做,谢谢
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1697213&b_id=64&s_id=0&num=22
子程序中可以使用SMW22。或者利用BGN_ITIME和CAL_ITIME指令组合。
个人感觉用SMW22结合比较指令会好用点。
习惯一下用Btime和Ctime吧。
这是我做的重复调用的子程序,大佬们帮我看看有什么问题吗?
方法有很多,我感觉我之前发的自制定时器更灵活。
粗看可能不行,P是一个全局变量,多次调用必须先赋值后使用!
自己做一个类似300的FC定时器的子程序,这样就可以重复调用了。200和200SMART注意一点就是不要使用上升沿,可以换种方法实现就好。
目前我已经很少使用200SMART编程,找了一下以前的200定时器子程序供你参考使用:
定时器的使用方法及TIA的定时器可参考300 的自编写S_ODT定时器FC块这个帖子,里面有比较详细的介绍。
-------------------------------------下面简单讲讲自编写定时器程序的优点所在:1.定时器使用了整形变量,便于各种类型的组态软件和触摸屏的定时设定、时间读取和时间比较。2.FC的使用可以方便的各种嵌套而不容易出现定时器重复的问题。3.长时间计时并不会出现重因为复调用定时器导致的累计误差,因此此定时器长时间计时是很准确的 。4.可以灵活运用,特别是ET(已用时间)的运用,通过已用时间的比较可以多个时间段进行各种控制,而不需要使用到多个计时器。5.定时遵循程序从上到下,从左到右的扫描规律,在程序设计中不会因为异步计时可能导致的各种误解和问题。6.可能这个需求是大家容易疏忽的,也是一个很重要的优点:那就是很方便的选择断电重上电后定时器的计时状态。如果想选择重上电后计时器继续运行只需要将相关变量设计成掉电保持型即可,如果想选择重上电后计时器重新运行只需将相关变量设计成掉电非保持型即可。
我很好奇,自制定时中要用到 P。
参考系统的定时器,基本是两类:
1、TON类(TOF可归在此类),条件ON开始定时,条件OFF定时器复位。
2、TONR类,条件ON时开始定时(可累计),条件OFF时停止(不复位),复位需要单独发指令。
没有进行过测试,不知行不行。
没有进行过测试,不知行不行。!
你上面那个AC0就可以用temp了。
下面那个图的not好像没必要吧?cal前面那个比较也可能没必要吧?这样ld5就可以用temp了。
这样就跟我一样了。
能用bgntime就不要用smb22因为,3个扫描周期smb22都显示1毫秒,但是bgn只走了2毫秒。22就计多了。它只能显示1,
如果楼主的计时只需要达到秒级,可以参考我的方式。
设备或阀门块计时总时间,计时当前运行时间,计时当前停止时间。
判断停了多长时间开始运行,运行多长时间开始停止用另外的条件来控制。
整个功能只有一个“秒基”(TP),即M2.0,只保持一个扫描周期
V1028.3为自动选择,V1028.4为自动命令
注意这个子程序的L0.1和LD1,LD5对应的接口参数寄存器合理的初始化,LD9对应的计时时长用IN变量类型合适些。
谢谢芳季老师的指正,如您所说,下面程序的NOT用的画蛇添足了。CAL指令前面的比较主要是我对这个系统时钟不熟悉,我是怕系统时钟跑到最大值再次进入一个新的循环,使得程序出现错误,就像双向计数器,加计数到32767,再来一个脉冲就跑到-32768。
引用11楼详细内容:
谢谢winter938老师的指正。
LD9对应用IN变量类型,这个我是理解了。
对于L0.1和LD1,LD5对应的接口参数寄存器合理的初始化,这个的含义能不能再和我讲解一下。
子程序调用时,要给接口参数分配一个内存,这个内存的数值对于IN和IN_OUT型变量在执行子程序前会有一个传入L寄存器的动作,从而影响程序执行的结果,所以要考虑这些内存初始化的问题,除非子程序中可以保证L先赋值后再使用。
你们说的是对的,一个设备连续开20几天,连续关20几天是很正常的,如果这个指令是处理,没符号,32位,那么就是40几天了,到时候真的会出错的
这种程序结构有一个不好,以前有人提到过。
就是假如做了个子程序做定时器,之后会在众多的上级子程序里面调用。那么上级子程序将要担负起提供变量给这个计时子程序用。可惜,也是作为一个子程序的上级,何来有那么多资源给下级子程序做变量呢?上级自己都要向主程序要资源。这样一级一级的嵌套之后第一级的子程序将会很难管理自己手上的变量。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录