mcgs组态软件脚本编程

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:42:43
本人刚接触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”该执行什么,该输出什么结果,最后是怎么判断的(程序的运行过程)。我初学者,可能您觉得这么简单的问题还问,但是对于初学者(没学过B)来说,这很重

在第一个扫描周期,程序从上至下执行,如果条件成立,执行相应的语句,不成立执行下面的语句,直至程序的末尾,输出相应的值;接着进行第二个周期的扫描,利用第一个周期的返回值和每个语句进行比较,同样的步骤执行完毕;依次循环,知道所有的条件都不成立,返回最终的结果输出。你可以试验一下,就明白了,每次增加一条语句,不要把所有的都写上。表达不够好,希望能帮助你。

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

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

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

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