一种使用CodeSys的ST语言自编定时器模块替换原异常模块的方法与流程

文档序号:33459959发布日期:2023-03-15 03:29阅读:61来源:国知局
一种使用CodeSys的ST语言自编定时器模块替换原异常模块的方法与流程
一种使用codesys的st语言自编定时器模块替换原异常模块的方法
技术领域
1.本发明属于使用codesys的st语言进行控制的领域,适用于车体调平、伺服控制以及其它类似控制的场合。


背景技术:

2.codesys是流行于欧洲的plc开发环境,其中广泛使用的st(结构化文本)编程语言由于易于使用、结构严谨而保证了控制的可靠性,其从形式上非常类似于pascal语言,两种语言在严谨程度上不相上下。
3.然而这个开发环境在定(延)时器的调用上却有一个缺点,众所周知plc编程当中广泛地使用定(延)时器,可是这个平台2.1版本提供的定(延)时器ton却不能可靠地工作,在满足条件的时常常不能够触发延时,作者不得已对其进行几十次触发的异常编程才能工作,给使用带来严重不便,查诸有关专利、文献也未见到任何线索。


技术实现要素:

4.要解决的技术问题
5.为了解决用户使用原ton不能可靠地触发延时的问题,本发明提供一种使用codesys的st语言自编定时器模块替换原异常模块的方法。
6.技术方案
7.一种使用codesys的st语言自编定时器模块替换原异常模块的方法,依照原ton接口设计一个ton再予以调用,设计的ton改名为tond;和原ton一样具有“使能”、“延迟时间数”两个输入接口,以及“延迟时间到”一个输出接口,调用的延迟时间=若干ms
×
延迟时间数,延迟时间数的单位为tond所在例程的循环周期,为若干ms;其特征在于步骤如下:
8.步骤1:如果未使能,清除定时器的延迟时间到,内部计时变量装载延迟时间数,转步骤3;
9.步骤2:如果内部计时变量未装载延迟时间数,则仅装载一次,计时,如果延迟时间没有到,则清除延迟时间到,否则设置延迟时间到;
10.步骤3:返回,进入下一次循环。
11.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。
12.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。
13.有益效果
14.本发明提供的一种使用codesys的st语言自编定时器模块替换原异常模块的方法,本发明方法与现有技术相比具有如下有益效果:
15.1、简单易行;
16.2、仅增加自编定时器模块及其调用程序,不用更改其余程序;
17.3、原先问题解决,以小代价获得较高性价比。
附图说明
18.附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
19.图1本发明应用示意图;
20.图2使用codesys的st语言自编定时器模块替换原异常模块的具体实施例图。
具体实施方式
21.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
22.用户不可能修改codesys环境本身,而同时分析延时程序本身并没有太大的难度,因此用户完全依照原ton接口自己设计一个ton再予以调用,就能够解决这个问题。
23.为了和原ton区别,用户设计的ton改名为tond。和原ton一样具有“使能”、“延迟时间数”(单位为tond所在例程的循环周期,为若干ms)两个输入接口(变量,以下省略变量二字),以及“延迟时间到”一个输出接口,调用的延迟时间=若干ms
×
延迟时间数。
24.具体方法其特征在于:
25.(1)如果未使能,清除定时器的延迟时间到,内部计时变量装载延迟时间数,转(3);
26.(2)如果内部计时变量未装载延迟时间数,则仅装载一次,计时,如果延迟时间没有到,则清除延迟时间到,否则设置延迟时间到;
27.(3)返回(进入下一次循环)。
28.为了使本领域技术人员更好地理解本发明,下面结合具体实施例对本发明进行详细说明。
29.本发明实施例示意图见图2。
30.某液压调平分系统的plc控制程序使用codesys环境下的st语言编写完成,在使用中发现该环境所带的定时器ton模块不能正常触发,在过去的程序中编入几十次的触发指令才能动作,然而长久看来不是解决问题的办法,因此作者就着手解决该问题。
31.想要直接改动codesys环境内部这个错误不太可能,同时分析研究ton也仅仅是延时的简单程序,因此作者可以完全仿照原模块接口自己编写一个定时器模块来解决这个问题。
32.为避免重名,新定时器叫做tond,输入接口:使能ind布尔变量,延迟时间数ptd双字变量,输出接口:延迟时间到q布尔变量。内部含有首次装载时间数fstassign布尔变量,以及计时delaycounts双字变量。
33.具体按照如下步骤进行:
34.(1)如果ind为假,定时器的q为假,fstassign为假,delaycounts装载ptd,转(3);
35.(2)如果fstassign为假,则delaycounts仅装载一次ptd并设fstassign为真,delaycounts在大于等于1时减一计时,如果delaycounts不等于0,则清除q,否则设置q;
36.(3)返回(进入下一次循环)。
37.而在原程序中调用自编定时器模块,将原几十次异常触发更换为一次正常触发,其余程序保持不变,延时功能正常运行,原定时器不能正常触发的问题得以解决。
38.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。


技术特征:
1.一种使用codesys的st语言自编定时器模块替换原异常模块的方法,依照原ton接口设计一个ton再予以调用,设计的ton改名为tond;和原ton一样具有“使能”、“延迟时间数”两个输入接口,以及“延迟时间到”一个输出接口,调用的延迟时间=若干ms
×
延迟时间数,延迟时间数的单位为tond所在例程的循环周期,为若干ms;其特征在于步骤如下:步骤1:如果未使能,清除定时器的延迟时间到,内部计时变量装载延迟时间数,转步骤3;步骤2:如果内部计时变量未装载延迟时间数,则仅装载一次,计时,如果延迟时间没有到,则清除延迟时间到,否则设置延迟时间到;步骤3:返回,进入下一次循环。2.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。3.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。

技术总结
本发明涉及一种使用CodeSys的ST语言自编定时器模块替换原异常模块的方法,属于车体调平、伺服控制技术领域。依照原TON接口自己设计一个TON再予以调用,包括以下步骤:如果未使能,清除定时器的延迟时间到,内部计时变量装载延迟时间数,返回,进入下一次循环;如果内部计时变量未装载延迟时间数,则仅装载一次,计时,如果延迟时间没有到,则清除延迟时间到,否则设置延迟时间到。本方法方法简单易行,仅增加自编定时器模块及其调用程序,不用更改其余程序即可实现,解决了用户使用原TON不能可靠地触发延时的问题。地触发延时的问题。地触发延时的问题。


技术研发人员:肖鉴 张绯丽 张文博 何海龙 张翔
受保护的技术使用者:西安电子工程研究所
技术研发日:2022.10.17
技术公布日:2023/3/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1