<< 向前        下一页 >>

ID : 5075

变量的种类和使用注意事项

变量的分类

  • 变量分为全局变量和局部变量。
  • 局部变量中包括Static变量(Static属性的局部变量)。
  • Static变量中包括Public变量(Public属性的局部变量)。
变量的种类 局部变量   全局变量
Static属性  
Public属性
是否由用户创建?
控制器电源为OFF时是否消失? - 不消失 不消失 不消失
是否可从其它程序文件访问? - - 可以访问 可以访问

变量的种类和类型

  变量的名称 局部变量 Static变量 Public变量 全局变量
变量类型 Integer

I
Single F
Double D
Vector V
Position P
Joint J
Trans T
String ○※1 ○※1 ○※1 S
Variant × × ×  
Object × × ×  

○※1:数据大小最大为255字节。

Static变量的生成、初始化、删除

Static变量(包含Public变量)的生成、初始化、删除如下所示。

变量的生成

Static变量是在最初编译追加了变量的程序文件时生成(确保领域)的。

变量的初始化

如下情况,在编译程序文件时,初始化程序包含的所有Static变量。

  1. 追加、删除、更改任何一个Static变量时
    此处的更改是指更改变量的名称、类型、次数或初始值中的任何一个。在包含的文件中定义的Static变量也是更改对象。
  2. 更改定义变量的程序文件或文件夹名称时

初始化注意事项

初始化某程序文件的变量时,在参照变量的其它程序文件中可能出现不匹配的情况。可采取以下任一方法避免发生以上情况。

  1. 强制初始化参照变量的程序文件。由于任何一个Static变量未更改时不能进行初始化,因此,暂时更改其中一个并强制进行初始化,再返回原值。
  2. 在参照变量的程序文件内,进行编程以检测不匹配并改写值。

请注意发送WINCAPSIII的程序或读入USB的程序时也可能会发生不匹配。

变量的删除

在编译程序文件时从该程序文件中删除变量的记述。删除程序文件时,在编译其它程序文件时进行。

Static变量的应用示例

Static变量(包括Public变量)的特征为即使切断电源也可保持值并可确保数据的独立性,因此,利用该特征可实现下例所示的功能。

应用示例1:输出执行程序的次数

每次执行如下程序时,RunCount逐个计数。

Pro1.pcs

Sub Main 
 Static RunCount as Integer = 0
 PrintDbg "截止到上次的执行次数 = " & RunCount

  ' ... 执行处理

 RunCount = RunCount+1
End Sub

应用示例2:准备并利用用户独自的数据领域

如下程序中通过DataBase.pcs确保100个数据领域,通过Pro1.pcs设定值。

DataBase.pcs

#define DB_MAX  100

Public Count As Integer = 0 '计数器 
Public ProductID(DB_MAX) As Integer '选件号 
Public ProductName(DB_MAX) As String '选件名
Public ProductPos(DB_MAX) As Position '位置

Sub Main 

End Sub

Pro1.pcs

Sub Main 
  Dim n as integer
  GetPublicValue n, "DataBase", "Count"

  ' 0, "N000", P(100, 120, 400)
  SetPublicValue 0, "DataBase", "ProductID", n 
  SetPublicValue "N000", "DataBase", "ProductName", n 
  SetPublicValue P(100, 120, 400), "DataBase", "ProductPos", n 

  ' 1, "N001", P(200, 220, 300)
  SetPublicValue 1, "DataBase", "ProductID", n 
  SetPublicValue "N001", "DataBase", "ProductName", n 
  SetPublicValue P(200, 220, 300), "DataBase", "ProductPos", n 

  SetPublicValue n+1, "DataBase", "Count" 
End Sub

ID : 5075

<< 向前        下一页 >>