仪器社区

mcgs组态软件脚本编程

ai3747331353 2017-10-04
本人刚接触MCGS组态软件,从前编程语言学的不好所以脚本程序搞的也不太明白,现有一个问题求教,望高手不吝赐教!有关于IF中含有复合型赋值语句的程序。“if条件then赋值语句”,当条... 本人刚接触MCGS组态软件,从前编程语言学的不好所以脚本程序搞的也不太明白,现有一个问题求教,望高手不吝赐教! 有关于IF中含有复合型赋值语句的程序。“if 条件 then 赋值语句”,当条件为真,执行then 后面的语句;当条件为假,跳过if语句。在MCGS教程中,有一节是“小人推车”,在脚本程序中需要编辑轮子的程序。按脚本编辑,做了如下实验: 1、wheel=[0,600] if wheel>600 then wheel=wheel-600 (条件为假,不执行then之后的语句,走完600停止,这个我知道) if wheel>500 then wheel=wheel-500 if wheel>500 then wheel=wheel-600 if wheel>500 then wheel=wheel-700 2、wheel=[-400,600] if wheel>500 then wheel=wheel-700 if wheel>400 then wheel=wheel-700 这些结果都不一样,我确实很想知道这类结构的的语句是怎样执行的?哪位大侠能从语法的角度给我讲解下,小弟无胜感激!!! 抱歉啊,可能是我没写清楚。这个不是正规的编程语言,是组态软件自带的脚本程序,我写的意思是只写一条“if then”,每次把相应的数据做修改,观察结果,发现每次在组态软件运行环境下执行情况都不一样。所以我才想知道在组态环境下,该模式的脚本程序是怎么实现的?也就是在问工作过程。(一次只写一条,并非多条从上到下执行) 谢谢您的回答,学到一些东西。但是好像我们谈论的不是同一话题。首先我道歉,可能是我语言表达能力有限,我真正想问的是,上面那几条语句,在组态软件的环境下,是怎么执行的,再明确点,组态软件是如何判断“if then”该执行什么,该输出什么结果,Z后是怎么判断的(程序的运行过程)。我初学者,可能您觉得这么简单的问题还问,但是对于初学者(没学过B)来说,这很重要,对将来编程有重要意义!希望您能帮助我,给我讲明白了您要多少分都可以!!
评论
全部评论
我的爱人瓜货
在diyi个扫描周期,程序从上至下执行,如果条件成立,执行相应的语句,不成立执行下面的语句,直至程序的末尾,输出相应的值;接着进行第二个周期的扫描,利用diyi个周期的返回值和每个语句进行比较,同样的步骤执行完毕;依次循环,知道所有的条件都不成立,返回Z终的结果输出。你可以试验一下,就明白了,每次增加一条语句,不要把所有的都写上。表达不够好,希望能帮助你。

补充:你可以在组态环境下打开运行策略的窗口,根据你的需要你可以写启动策略或者循环策略,一般都是写循环策略,也可以新建自定义策略。以循环策略为例,你点击后打开,在界面上点右键,新增策略行,然后双击执行条件,在数据库里新建一个变量DO点吧,设置好启动条件,然后右键点击第三个方块——策略工具箱——脚本程序,拖到方块上,再双击方块,就会弹出编脚本程序的串口,把你需要的哪些语句写进去,写几条都可以,每个周期他都要扫描一次,执行成立的表达式,输出结果。(另外,你还需要在数据库中定义wheel这个变量,为数值型即浮点型的。)

比如说只写:if wheel>600 then wheel=wheel-600,这个表达式,你对变量wheel输入600,他就不执行,写601,结果就是601-600=1,同样的道理,你写1805,输出的结果就是5.可以随便增加语句,只执行判断条件非零的语句。

不知道这次说清楚没,希望能多交流。

再补充:先说一下组态,简单一点,所谓组态就是就是一种可视化的程序运行环境,一般用于工业电力化工等行业的自控方面,是一种人机交互,机机交互的媒介,(这是我自己下的定义)。它基于Windows操作系统和相关的VB或者C语言的基础上开发而成。他可以让人们自由的编辑,浏览,控制相关的设备等。也就是SCDA。
既然如此,在开发的时候它就可以利用这些编程语言,对它的一些控件(操作对象等)进行编程和定义。你提到的问题中的 Wheel 就是你要操作的对象,也就是组态中你需要定义的一个变量,既然是变量,他的值就是可以改变的,如果你对他赋一个初值,并且触发了程序运行的条件,他就会根据后台程序的执行结果(每个扫描周期)返回对应的值,只要后台程序一直在运行,并且满足你设定的条件,他就会不停的改变自己的值。
对于你上面写的那些条件,也叫程序,组态系统在每个周期都要把每一条语句执行一遍,从上到下,从左到右,如果diyi条成立,就返回diyi条语句的Wheel的结果,然后在执行下一条语句的时候把上一条的Wheel结果作为后一条语句的初值,继续判断条件,成立则根据你的算式算出一个新的结果送给下一条语句,不成立的话则跳过这一条,继续把刚才的结果作为初值乡下传。

快停电了,就说这么多吧QQ44710149,有机会多交流
3 1 2017-10-05 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论