imgboxbg

技术应用
Application

tb

hh

/
/
-
三菱ST文本的基础语法示例说明

资讯详情

三菱ST文本的基础语法示例说明

  • 分类:介绍电气知识
  • 作者:
  • 来源:
  • 发布时间:2020-08-13 03:11
  • 访问量:

【概要描述】  今天给大家介绍ST的运算符,赋值方式,程序注释等。   注:ST程序文必须是半角符,英文数字输入,如果使用全角或汉字编译将会报错。    大图模式     运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。   一:代入语句   我们首先先了解ST语言的赋值方法,也叫代入语句   代入语句 “ := ” (冒号+等于号),在ST语言的赋值方法   上图左边代码的意思是将X0的状态赋值给Y0,右边代码的意思是将K5传送级D0。可参考下列梯形图,进行对比    大图模式     ST语言常用的赋值方式,将右边的值赋值给左边,右边可以是数值,寄存器,定时器,或者进行四则运算后再赋值都是可以的。   注意:但要求左右二边最结果的类型必须一致,如上图赋值符号的右边最终运行结果还是为16位,左边D0也是16位,类型符合,下图所示就是一个错误的示范   赋值符号右边为位类型,左边为字类型,赋值二边类型不一致,编译不会通过,所在使用赋值符号时,注意二边最终结果必须一致!》   二:分组符号 ; ( )   在ST语言需要对程序文进行分组可以使用分号”;”或使用括号“()”,   1)分号应用   分号是作为某一段或一组程序文的结束,代表这一段程序与下一段程序无关。   在上图编写了一行代码,有三组程序,分别给D0,D2,D4进行赋值,使用分号进行分组。也可以使用下图方法进行分组。看起来是不同的编写方法,实质上是一样的,因为编译器是按分组符号定义,不是按行定义。    大图模式     有时候因为没有使用分组符号,那么有时看起来是二行程序,也可能是一组程序。如下图所示:   在上图中,因为第一行代码没有使用分组号,编译器默认认为与下行程序相连接。   2)括号应用   在编写某些运算时我们希望一些运算优先处理时,可以使用括号进行处理,如:在下图中默认会先执行D102乘以D104然后将相乘的积加上D100,最后将和赋值给D0。   如果希望先执行D100加D102,然后再乘以D104,则可以使用括号,优先处理括号内运算,参考下图所示   三:程序注释   在保证程序可读性良好,注释是少不了,ST语言的注释方法可以参考下图所示   ST语言的注释方式就是使用 (* 注释文 *) 格式,默认会显示绿色,可以在程序尾部增加注释,也可以在程序上行增加,或程序下行增加,在程序文中间也是可以,具体参考下图:    大图模式     可以对程序分类或分段定义,如下图所示    大图模式          运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。   一:( ) 圆括弧式   优先权最高的运算符,在程序中只要希望优先执行,运算就可以使用圆括弧式。注意必须成对使用,不可以单独使用,否则编译不通过。   例:将D100与D102括起来,优先执行D100加D102   二:函数( )   函数的参数列表是第二优先权运算符,程序在同组运算中会执行函数括号内的运算,同样函数的特号也必须成对使用,不可以单独使用,否则编译不通过。函数可以系统自定义或自定义函数。   例:系统自带的传送函数(传送指令)   三:** 指数(幂)   ST语言的指数幂运算符为“ ** ”,为连续二个星符号,可指定底数进行幂运算,一般应用复杂的公式计算。注意幂运算一般为小数类型。   例:指定底数为3,指数为4,进行幂运算    大图模式     四:NOT 布尔补数(位取反)   在ST语言中没有常开常闭概念,也就是说梯形图中的常开触点与常闭触点,在ST语言是没有的,如果想要实现类似功能可以使用位取反运算符NOT。在读取位状态之前将位状态取反后再读出。   例:将X0的状态,取反后赋值给Y0,同行等于X0的常闭驱动Y0   五:* (乘) / (除) MOD (余数)   梯形图中的乘除用指令MUL与DIV表示,如果是小数另外需要加上EMUL与EDIV。   1) * 乘法   在ST语言使用运算符 * 表示乘法,自动根据自定义的标签自动进行整数运算或小数运算,如果直接使用软元件名使用,默认为16位整数运算,如下图所示:    大图模式     梯形图的乘法运算,会存在16位整数乘以16位整数结果是32位整数,在ST语言则不会,如上图所示,D2乘以K3,结果还是16位整数,然后存至D0中。   注意数据类似必须一致才能运算,否则编译不会通过,如下图所示就是失败例子,    大图模式     直接使用D2就是使用16位整数,但E3.3为32位小数,数据类型不一致,所以编译不通过,输出窗口提示:*的类型不一致   小数乘法在GX Works2 比较麻烦,需要在全局标签中设置小数类型,然后在程序文中使用标签进行运算。   例:在全局标签定义三个小数变量,分别命名为小数1,小数2,小数3,地址分配为D100,D102,D104,然后在程序中将,小数1乘以小数2,结果赋值给小数3,步骤如下图所示    大图模式 大图模式     小数乘法在GX Works3 比较方便,不需要在全局标签中设置小数类型,可以直接在程序文中直接使用软元件,参考下图所示   在软元件名称加上冒号然后输入数据类型,具体定义如下图所示   

三菱ST文本的基础语法示例说明

【概要描述】  今天给大家介绍ST的运算符,赋值方式,程序注释等。

  注:ST程序文必须是半角符,英文数字输入,如果使用全角或汉字编译将会报错。

  



大图模式

 

  运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。

  一:代入语句

  我们首先先了解ST语言的赋值方法,也叫代入语句

  代入语句 “ := ” (冒号+等于号),在ST语言的赋值方法

  上图左边代码的意思是将X0的状态赋值给Y0,右边代码的意思是将K5传送级D0。可参考下列梯形图,进行对比

  



大图模式

 

  ST语言常用的赋值方式,将右边的值赋值给左边,右边可以是数值,寄存器,定时器,或者进行四则运算后再赋值都是可以的。

  注意:但要求左右二边最结果的类型必须一致,如上图赋值符号的右边最终运行结果还是为16位,左边D0也是16位,类型符合,下图所示就是一个错误的示范

  赋值符号右边为位类型,左边为字类型,赋值二边类型不一致,编译不会通过,所在使用赋值符号时,注意二边最终结果必须一致!》

  二:分组符号 ; ( )

  在ST语言需要对程序文进行分组可以使用分号”;”或使用括号“()”,

  1)分号应用

  分号是作为某一段或一组程序文的结束,代表这一段程序与下一段程序无关。

  在上图编写了一行代码,有三组程序,分别给D0,D2,D4进行赋值,使用分号进行分组。也可以使用下图方法进行分组。看起来是不同的编写方法,实质上是一样的,因为编译器是按分组符号定义,不是按行定义。

  



大图模式

 

  有时候因为没有使用分组符号,那么有时看起来是二行程序,也可能是一组程序。如下图所示:

  在上图中,因为第一行代码没有使用分组号,编译器默认认为与下行程序相连接。

  2)括号应用

  在编写某些运算时我们希望一些运算优先处理时,可以使用括号进行处理,如:在下图中默认会先执行D102乘以D104然后将相乘的积加上D100,最后将和赋值给D0。

  如果希望先执行D100加D102,然后再乘以D104,则可以使用括号,优先处理括号内运算,参考下图所示

  三:程序注释

  在保证程序可读性良好,注释是少不了,ST语言的注释方法可以参考下图所示

  ST语言的注释方式就是使用 (* 注释文 *) 格式,默认会显示绿色,可以在程序尾部增加注释,也可以在程序上行增加,或程序下行增加,在程序文中间也是可以,具体参考下图:

  



大图模式

 

  可以对程序分类或分段定义,如下图所示

  



大图模式

 

  











 

  运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。

  一:( ) 圆括弧式

  优先权最高的运算符,在程序中只要希望优先执行,运算就可以使用圆括弧式。注意必须成对使用,不可以单独使用,否则编译不通过。

  例:将D100与D102括起来,优先执行D100加D102

  二:函数( )

  函数的参数列表是第二优先权运算符,程序在同组运算中会执行函数括号内的运算,同样函数的特号也必须成对使用,不可以单独使用,否则编译不通过。函数可以系统自定义或自定义函数。

  例:系统自带的传送函数(传送指令)

  三:** 指数(幂)

  ST语言的指数幂运算符为“ ** ”,为连续二个星符号,可指定底数进行幂运算,一般应用复杂的公式计算。注意幂运算一般为小数类型。

  例:指定底数为3,指数为4,进行幂运算

  



大图模式

 

  四:NOT 布尔补数(位取反)

  在ST语言中没有常开常闭概念,也就是说梯形图中的常开触点与常闭触点,在ST语言是没有的,如果想要实现类似功能可以使用位取反运算符NOT。在读取位状态之前将位状态取反后再读出。

  例:将X0的状态,取反后赋值给Y0,同行等于X0的常闭驱动Y0

  五:* (乘) / (除) MOD (余数)

  梯形图中的乘除用指令MUL与DIV表示,如果是小数另外需要加上EMUL与EDIV。

  1) * 乘法

  在ST语言使用运算符 * 表示乘法,自动根据自定义的标签自动进行整数运算或小数运算,如果直接使用软元件名使用,默认为16位整数运算,如下图所示:

  



大图模式

 

  梯形图的乘法运算,会存在16位整数乘以16位整数结果是32位整数,在ST语言则不会,如上图所示,D2乘以K3,结果还是16位整数,然后存至D0中。

  注意数据类似必须一致才能运算,否则编译不会通过,如下图所示就是失败例子,

  



大图模式

 

  直接使用D2就是使用16位整数,但E3.3为32位小数,数据类型不一致,所以编译不通过,输出窗口提示:*的类型不一致

  小数乘法在GX Works2 比较麻烦,需要在全局标签中设置小数类型,然后在程序文中使用标签进行运算。

  例:在全局标签定义三个小数变量,分别命名为小数1,小数2,小数3,地址分配为D100,D102,D104,然后在程序中将,小数1乘以小数2,结果赋值给小数3,步骤如下图所示

  



大图模式



大图模式

 

  小数乘法在GX Works3 比较方便,不需要在全局标签中设置小数类型,可以直接在程序文中直接使用软元件,参考下图所示

  在软元件名称加上冒号然后输入数据类型,具体定义如下图所示

  


  • 分类:介绍电气知识
  • 作者:
  • 来源:
  • 发布时间:2020-08-13 03:11
  • 访问量:
详情

  今天给大家介绍ST的运算符,赋值方式,程序注释等。

  注:ST程序文必须是半角符,英文数字输入,如果使用全角或汉字编译将会报错。

  

大图模式

 

  运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。

  一:代入语句

  我们首先先了解ST语言的赋值方法,也叫代入语句

  代入语句 “ := ” (冒号+等于号),在ST语言的赋值方法

  上图左边代码的意思是将X0的状态赋值给Y0,右边代码的意思是将K5传送级D0。可参考下列梯形图,进行对比

  

大图模式

 

  ST语言常用的赋值方式,将右边的值赋值给左边,右边可以是数值,寄存器,定时器,或者进行四则运算后再赋值都是可以的。

  注意:但要求左右二边最结果的类型必须一致,如上图赋值符号的右边最终运行结果还是为16位,左边D0也是16位,类型符合,下图所示就是一个错误的示范

  赋值符号右边为位类型,左边为字类型,赋值二边类型不一致,编译不会通过,所在使用赋值符号时,注意二边最终结果必须一致!》

  二:分组符号 ; ( )

  在ST语言需要对程序文进行分组可以使用分号”;”或使用括号“()”,

  1)分号应用

  分号是作为某一段或一组程序文的结束,代表这一段程序与下一段程序无关。

  在上图编写了一行代码,有三组程序,分别给D0,D2,D4进行赋值,使用分号进行分组。也可以使用下图方法进行分组。看起来是不同的编写方法,实质上是一样的,因为编译器是按分组符号定义,不是按行定义。

  

大图模式

 

  有时候因为没有使用分组符号,那么有时看起来是二行程序,也可能是一组程序。如下图所示:

  在上图中,因为第一行代码没有使用分组号,编译器默认认为与下行程序相连接。

  2)括号应用

  在编写某些运算时我们希望一些运算优先处理时,可以使用括号进行处理,如:在下图中默认会先执行D102乘以D104然后将相乘的积加上D100,将和赋值给D0。

  如果希望先执行D100加D102,然后再乘以D104,则可以使用括号,优先处理括号内运算,参考下图所示

  三:程序注释

  在保证程序可读性良好,注释是少不了,ST语言的注释方法可以参考下图所示

  ST语言的注释方式就是使用 (* 注释文 *) 格式,默认会显示绿色,可以在程序尾部增加注释,也可以在程序上行增加,或程序下行增加,在程序文中间也是可以,具体参考下图:

  

大图模式

 

  可以对程序分类或分段定义,如下图所示

  

大图模式

 

  

 

  运算符是ST语言构成的主要部分,运算符指定了如何赋值,四则运算,比较关系,逻辑运算等作出规定,多个运算符在同组执行时,按优先权依次执行。接下来介绍运算符,按优先级别介绍。

  一:( ) 圆括弧式

  优先权的运算符,在程序中只要希望优先执行,运算就可以使用圆括弧式。注意必须成对使用,不可以单独使用,否则编译不通过。

  例:将D100与D102括起来,优先执行D100加D102

  二:函数( )

  函数的参数列表是第二优先权运算符,程序在同组运算中会执行函数括号内的运算,同样函数的特号也必须成对使用,不可以单独使用,否则编译不通过。函数可以系统自定义或自定义函数。

  例:系统自带的传送函数(传送指令)

  三:** 指数(幂)

  ST语言的指数幂运算符为“ ** ”,为连续二个星符号,可指定底数进行幂运算,一般应用复杂的公式计算。注意幂运算一般为小数类型。

  例:指定底数为3,指数为4,进行幂运算

  

大图模式

 

  四:NOT 布尔补数(位取反)

  在ST语言中没有常开常闭概念,也就是说梯形图中的常开触点与常闭触点,在ST语言是没有的,如果想要实现类似功能可以使用位取反运算符NOT。在读取位状态之前将位状态取反后再读出。

  例:将X0的状态,取反后赋值给Y0,同行等于X0的常闭驱动Y0

  五:* (乘) / (除) MOD (余数)

  梯形图中的乘除用指令MUL与DIV表示,如果是小数另外需要加上EMUL与EDIV。

  1) * 乘法

  在ST语言使用运算符 * 表示乘法,自动根据自定义的标签自动进行整数运算或小数运算,如果直接使用软元件名使用,默认为16位整数运算,如下图所示:

  

大图模式

 

  梯形图的乘法运算,会存在16位整数乘以16位整数结果是32位整数,在ST语言则不会,如上图所示,D2乘以K3,结果还是16位整数,然后存至D0中。

  注意数据类似必须一致才能运算,否则编译不会通过,如下图所示就是失败例子,

  

大图模式

 

  直接使用D2就是使用16位整数,但E3.3为32位小数,数据类型不一致,所以编译不通过,输出窗口提示:*的类型不一致

  小数乘法在GX Works2 比较麻烦,需要在全局标签中设置小数类型,然后在程序文中使用标签进行运算。

  例:在全局标签定义三个小数变量,分别命名为小数1,小数2,小数3,地址分配为D100,D102,D104,然后在程序中将,小数1乘以小数2,结果赋值给小数3,步骤如下图所示

  

大图模式

大图模式

 

  小数乘法在GX Works3 比较方便,不需要在全局标签中设置小数类型,可以直接在程序文中直接使用软元件,参考下图所示

  在软元件名称加上冒号然后输入数据类型,具体定义如下图所示

  

扫二维码用手机看

公司地址:郑州市文化路68号科技市场数码港109B室   电话:0371-63965378

河南八方自动化设备有限公司    ALL REGHTS RESERVED.    豫ICP备12023801号  网站建设;中企动力  郑州

在线客服

客服热线 :

0371-63965378-8023