1、SIEMENSSIMATIC S7ProSim Version:5.0 用户手册安全指导这个手册包含了一些注意事项,你必须仔细注意来保证你个人的安全,以及产品和连接设备的安全。这些注意事项在手册中根据不同的危险程度用以下的三角形来强调: 表示一个紧急的危险情况,如果这个情况不能被避免,则会导致死亡或者严重的伤害。表示一个潜在的危险情况,如果这个情况不能被避免,则会导致死亡或者较严重的伤害。使用这个安全警告标志表示一个潜在的危险情况,如果不能被避免,则会导致较小的或者中等的伤害。Caution不使用安全警告标志表示一个潜在的危险情况,如果不能被避免,可能会导致财产的损失。Notice不使用安全警
2、告标志的 NOTICE 表示一个潜在的危险情况,如果不能被避免,可能会导致不可预料的结果或者状态。有资格的成员这个设备/系统可能只可以根据这个手册来安装和操作。只有有资格的成员才能被允许安装和使用这个设备。有资格的成员定义为被授权的代理、场地和连接电路,以及与已经制定的安全惯例和标准相符合的系统。正确的使用方法注意下面的标志:这个设备和它的组成部分只可以被目录或者技术描述中的应用软件来使用,并且只能和其他生产商的那些被认可的、或者被 Siemens 所推荐的设备一起使用。如果你按照使用说明所推荐的方法正确的进行移植、存储、安装,它就能够正确的运行。目录S7ProSim 综述4基本任务5把 S7
3、ProSim 控制器插入到一个 VB 应用程序中.5在 VB 中访问 S7ProSim 控制器属性.5属性5S7ProSim 控制器属性 .5AutoConnect 属性6ControlEngine 属性6Enabled 属性6ScanMode 属性6方法7S7ProSim 控制器方法 7AboutBox 方法.7BeginScanNotify 方法7BeginScanNotify 方法的返回代码7EndScanNotify 方法.8EndScanNotify 方法的返回代码.8Connect 方法 8Connect 方法的返回代码 8Disconnect 方法 8Disconnect 方法的
4、返回代码9ExecuteNmsScan 方法9ExecuteNmsScan 方法的返回代码9ExecuteNScans 方法.9ExecuteNScans 方法的返回代码10ExecuteSingleScan 方法10ExecuteSingleScan 方法的返回代码10ReadOutputImage 方法10ReadOutputImage 方法的返回代码 11ReadOutputPoint 方法11ReadOutputPoint 方法的返回代码11WriteInputImage 方法12WriteInputImage 方法的返回代码12WriteInputPoint 方法13WriteInp
5、utPoint 方法的返回代码13事件13S7ProSim 控制器事件 .13ConnectionError 事件13PLCSIMStateChanged 事件.14ScanFinished 事件14参考信息14预先确定的常量14实例设计.15实例设计代码.17S7ProSim 综述 S7ProSim 是一个 ActiveX 控制器,它提供程序来访问 S7PLCSIM 的仿真接口程序。这个控制器可以被使用在任意接受 ActiveX 控制器的应用程序。你可以用这个控制器来连接一个 S7PLCSIM 的仿真程序。这个在线的帮助描述了 S7ProSim 控制器的特征和操作,Version5.0 。所
6、有的属性、方法和事件在实例中都涉及到。这个 ActiveX 控制器提供了所有的与 S7PLCSIM 相互作用所必须的方法和事件。下面的图给出了不同的方法和事件的次序图表。基本任务把 S7ProSim 控制器插入到一个 VB 应用程序中S7ProSim 控制器能被使用在很多种第三方容器中。在 VB 表格中用以下的过程来使用S7 控制器。1 选择一个菜单命令 ProjectComponents 来显示成员对话框。2 从滚动条目录中选择“Siemens S7ProSim Control” 。3 单击 Apply。一个 S7ProSim 控制器就会出现在 VB 表格的左边的工具栏中。4 单击 OK。5
7、 选择工具栏中的 S7ProSim 控制器,把它粘贴进表格中。在 VB 中访问 S7ProSim 控制器属性当你选择了 S7ProSim 控制器之后,VB 就会显示出一个有属性目录的小窗口。你可以在一个额外的属性窗口中编辑这些属性。属性窗口允许你来配置 S7ProSim 控制器的以下参数:Auto Connect:AutoConnect 属性用来确定控制器是否在启动时,或者设计模式转换到运行模式的时候,自动地连接上了 S7PLCSIM。Control Engine:ControlEngine 属性(只读)定义了 S7ProSim 控制器所连接地控制器发动机地地址,这个地址是 S7PLCSIM。
8、Enabled:Enabled 属性用来确定控制器是否被注册。 (ScanFinished 事件和PLCSIMStateChanged 事件都是可用的) 。Scan Mode:ScanMode 属性设置了 S7PLCSIM 的扫描模式。这个有效的执行模式就是 SingleScan 模式或者是 Continuous 模式。属性S7ProSim 控制器属性S7ProSim ActiveX 控制器有以下属性: AutoConnect 属性 ControlEngine 属性 Enabled 属性 ScanMode 属性AutoConnect 属性AutoConnect 属性用来确定控制器是否在启动时,
9、或者设计模式转换到运行模式的时候,自动地连接上了 S7PLCSIM。如果 AutoConnect 属性被设置成 False,控制器就不得不通过 Connect 方法来连接,通过 Disconnect 方法来断开连接。语法:S7ProSim1.AutoConnect=Boolean用途:Boolean 是一个布尔型的表达式,它详细说明了 ActiveX 控制器是否自动地连接了S7PLCSIM。Boolean 的设置有: True(default):ActiveX 控制器自动地从 S7PLCSIM 所指定的 ControlEngine上连接和断开连接。 False:ActiveX 控制器不得不通过
10、 Connect 方法和 Disconnect 方法来用程序连接和断开连接。ControlEngine 属性这个只读属性定义了控制器发动机的地址,这个地址就是 S7ProSim 控制器所连接的。地址是 S7PLCSIM。Enabled 属性Enabled 属性用来确定控制器是否被注册。 (ScanFinished 事件和 PLCSIMStateChanged事件都是可用的) 。语法:S7ProSim1.Enabled=Boolean用途:Boolean 是一个布尔型的表达式,它详细说明了 ActiveX 控制器是否注册了从控制器发动机得到的回叫信号(确定是否 ScanFinished 事件和
11、PLCSIMStateChanged 事件可以被使用) 。Boolean 的设置有: True:ActiveX 控制器注册了从控制器发动机得到的回叫信号。 False(default):ActiveX 控制器不会注册从控制器发动机得到的回叫信号,ScanFinished 事件和 PLCSIMStateChanged 事件可用。ScanMode 属性这个属性设置了 S7PLCSIM 的扫描模式。可用的执行模式是 SingleScan 模式和ContinuousScan 模式。语法:S7ProSim1.ScanMode=ScanModeConstants用途:ScanModeConstants 用
12、来确定控制器的扫描模式。可用的值有: ContinuousScan:S7PLCSIM 被设置成连续扫描模式。 SingleScan(default):S7PLCSIM 被设置成单一扫描模式。对于一个附加的仿真程序,S7PLCSIM 必须是这种模式。方法S7ProSim 控制器方法S7ProSim ActiveX 控制器有以下方法: AboutBox 方法 BeginScanNotify 方法 EndScanNotify 方法 Connect 方法 Disconnect 方法 ExecuteNmsScan 方法 ExecuteNScans 方法 ReadOutputImage 方法 ReadOu
13、tputPoint 方法 WriteInputImage 方法 WtiteInputPoint 方法AboutBox 方法用这个方法,你可以得到控制器的详细信息和它的版本号。语法:S7ProSim1.AboutBox这个 About 对话框如下图所示。AboutBox 方法没有参数和返回代码。BeginScanNotify 方法BeginScanNotify 方法注册了能够从控制器发动机得到回叫信号的 ActiveX 控制器。(ScanFinished 事件和 PLCSIMStateChanged 时间可用)语法:resultS7ProSim1.BeginScanNotify用途:result
14、 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。BeginScanNotify 方法的返回代码下面的表格给出了 BeginScanNotify 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上S7PLCSIMPS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态EndScanNotify 方法EndScanNotify 方法不注册能够从控制器发动机得到回叫信号的 A
15、ctiveX 控制器。(ScanFinished 事件和 PLCSIMStateChanged 时间不可用)语法:result=S7ProSim1.EndScanNotify用途:result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。EndScanNotify 方法的返回代码下面的表格给出了 EndScanNotify 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上S7PLCSIMP
16、S_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态PS_E_NOTREGISTERED &H80040209 应用程序没有被注册Connect 方法使用这个方法 S7ProSim 控制器能通过程序被连接到 S7PLCSIM 上,这是在ControlEngine 中定义了的。语法:result=S7ProSim1.Connect用途:result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。Connect 方法的返回代码下面的表格给出了 Connect 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E
17、_FAIL &H80004005 未知的错误发生PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上S7PLCSIMPS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态Disconnect 方法用这个方法 S7ProSim 控制器可以通过程序被断开。语法:result=S7ProSim1.Disconnect用途:result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。Disconnect 方法的返回代码下面的表格给出了 Disconnect 方法中的 result 值的可能的返回代码。常量 值 描述
18、S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态ExecuteNmsScan 方法这个方法迫使 S7PLCSIM 在指定的时间周期(Nms) 内执行扫描循环,而不是等待当前扫描执行的结束。如果 Enabled 属性被设置成 True,当 S7PLCSIM 扫描结束时,程序就会知道。语法:result=S7ProSim1.ExecuteNmsScan(MsNumber)用途: result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。 MsNumber 是一个
19、长整型值,它指出了执行的扫描循环的时间周期(毫秒以内) 。注意:这个方法只能用在 SingleScan 模式中ExecuteNmsScan 方法的返回代码下面的表格给出了 Disconnect 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_NOTSINGLESCAN &H8004020A S7PLCSIM 不是处于单一扫描模式PS_E_PLCSIMNOTRUNNING &H8004020E S7PLCSIM 不是处于 Run或者 RunP 模式PS_E_NOTCONNECTED &H8004
20、0211 S7ProSim 控制器没有连接上 S7PLCSIMExecuteNScans 方法这个方法迫使 S7PLCSIM 执行特定数量的循环扫描,并且不等待当前扫描的结束。如果 Enabled 属性被设置成 True,当 S7PLCSIM 扫描结束时,程序就会知道。语法:result=S7ProSim1.ExecuteNScans(NscanNumber)用途: result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。 NscanNumber 是一个长整型值,它指出执行的循环扫描数。注意:这个方法只能用在 SingleScan 模式ExecuteNScans 方法
21、的返回代码下面的表格给出了 ExecuteNScans 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_NOTSINGLESCAN &H8004020A S7PLCSIM 不是处于单一扫描模式PS_E_PLCSIMNOTRUNNING &H8004020E S7PLCSIM 不是处于 Run或者 RunP 模式PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMExecuteSingleScan 方法这个方法迫使 S7PLCSIM 执行
22、一个循环扫描,并且不等待当前扫描的结束。如果Enabled 属性被设置成 True,当 S7PLCSIM 扫描结束时,程序就会知道。语法:result=S7ProSim1.ExecuteSingleScan用途:result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。ExecuteSingleScan 方法的返回代码下面的表格给出了 ExecuteSingleScan 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_NOTSINGLESCAN &H8004020A S
23、7PLCSIM 不是处于单一扫描模式PS_E_PLCSIMNOTRUNNING &H8004020E S7PLCSIM 不是处于 Run或者 RunP 模式PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMReadOutputImage 方法外围输出映像(PQ 存储区)的开始是从 StartIndex 位置开始的,字节数、字(2 字节)数、或者双字(4 字节) (这些就是要读取的元素 ElementsToRead)就会被 S7PLCSIM的外围输出影像读取,并放置在 pDate 的一个队列中。被读取的元素类型由 DataType 参数
24、所要求的的类型来决定。所有元素由相同的数据类型。S7_Byte 返回字节,S7_Word 返回字,S7_DoubleWord 返回双字。读出的值是未经过加工的,它没有被这个方法进行解释或者修改。语法:result=S7ProSim1.ReadOutputImage(StartIndex, ElementsToRead, DataType, pDate)用途: StartIndex 是一个长整型的输入参数,它表示外围映像缓冲器要读取的字节的起始位置。StartIndex 的有效值取决于 CPU。 ElementsToRead 是一个长整型的输入参数,它表示映像缓冲器要读取的字节数,字数或者双字数
25、。ElementsToRead 的有效值取决于 CPU。 DataType 是一个输入参数,它是一种 ImageDataTypeConstants。它的形式有S7_Byte,S7_Word,S7_DoubleWord。 pData 是一个输出变量,它表示返回元素的空间。pData 的有效值取决于ElementsToRead。服务器分配存储器,应用程序释放存储器。 result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。ReadOutputImage 方法的返回代码下面的表格给出了 ReadOutputImage 方法中的 result 值的可能的返回代码。常量 值 描
26、述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_INVBYTENDX &H80040201 ByteIndex的值溢出PS_E_INVBYTECOUNT &H80040202 ByteToRead溢出PS_E_READFAILED &H80040203 S7PLCSIM 拒绝读请求PS_E_INVTYPE &H80040206 无效的数据类型PS_S_ALLREADSNOTPOSSIBLE&H8004020F 方法只能成功读出配置好的输出PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMP
27、S_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态ReadOutputPoint 方法这个方法从外围输出映像(PQ 存储区)读出一个特定的比特(Boolean 型) ,一个字节(Byte 型) ,一个两字节的字(Integer 型)或者一个四字节的字(Long 型) 。如果 DataType 参数被设置成 S7_Bit,ByteIndex 和 BitIndex 必须同时被设置成可用的索引。如果这样做成功了,这个方法返回 pData 的特定的比特,并且它的 Variant 数据类型是 Boolean 型的。如果 DataType 参数被设置成 S7_Byte,S7_W
28、ord 或者 S7_DoubleWord,ByteIndex 必须被设置成一个可用的索引(BitIndex 可忽略) 。如果这样做成功了,方法返回 pData 中的值,并且 Variant 数据类型是 Byte,Integer,或者 Long,这取决于 DataType 参数。语法:result=S7ProSim1.ReadOutputPoint(ByteIndex,BitIndex,DataType,pData)用途: ByteIndex 是一个 Long 型的输入参数,它表示外围映像缓冲区要读取的字节位置。ByteIndex 的有效值取决于 CPU。 BitIndex 是一个 Long 整
29、型的输入参数,它表示要读的映像缓冲区中的比特位置。它的有效值是从 0 到 7。 DataType 是一个输入参数,它是一种 PointDataTypeConstants。它可以被设置成S7_Byte,S7_Word,S7_DoubleWord。 pData 是一个可变的输出变量,它保留读出的数据。pData 的有效值取决于数据类型。 result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。ReadOutputPoint 方法的返回代码下面的表格给出了 ReadOutputPoint 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功P
30、S_E_FAIL &H80004005 未知的错误发生PS_E_INVBYTENDX &H80040201 ByteIndex的值溢出PS_E_INVBYTECOUNT &H80040202 ByteToRead溢出PS_E_READFAILED &H80040203 S7PLCSIM 拒绝读请求PS_E_ INVBITNDX &H80040205 BitIndex的值溢出PS_E_INVTYPE &H80040206 无效的数据类型PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMPS_E_POWEROFF &H80040212 S
31、7PLCSIM 处于关机状态WriteInputImage 方法以 StartIndex 的值作为开始,保存在 Data 中的元素会被写入 S7PLCSIM 的外围输入映像(PI 存储区) 。写入的元素类型有 Data 的元素类型决定。所有元素都有相同的数据类型。一个字节队列写入字节,一个整型队列写入字,一个 Long 型队列写入双字。写入的值是未经过加工的,它没有被这个方法进行解释或者修改。值得注意的是,写入的元素数量有 Data 所保存的队列的大小所决定。语法:result=S7ProSim1.WriteInputImage(StartIndex,Data)用途: StartIndex 是
32、一个 Long 型的输入参数,它表示外围输入映像缓冲器要要写的字节的起始位置。StartIndex 的有效值取决于 CPU。 Data 是一个可变类型的输入参数,它表示包括了要写的元素的队列。它也是取决于 CPU 的。应用程序完成存储器的分配和释放。元素被写入 S7PLCSIM。 result 是一个长整型值,它指出是否有错误发生。如果没有错误发生,则结果为零。WriteInputImage 方法下面的表格给出了 WriteInputImage 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_
33、INVBYTENDX &H80040201 ByteIndex的值溢出PS_E_INVBYTECOUNT &H80040202 ByteToRead溢出PS_E_WRITEFAILED &H80040204 S7PLCSIM 拒绝写请求PS_E_INVTYPE &H80040206 无效的数据类型PS_S_ALLWRITESNOTPOSSIBLE&H80040210 方法只能成功写出配置好的输入PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMPS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态WriteI
34、nputPoint 方法这个方法从 Data 变量写给外围输输入映像(PI 存储区)一个特定的比特( Boolean 型),一个字节(Byte 型) ,一个两字节的字(Integer 型)或者一个四字节的字(Long 型) 。如果 Boolean 是作为 Varant 数据类型给出的,那么 ByteIndex 和 BitIndex 必须同时被设置成可用的索引。如果这样做成功了,方法写入 Data 中特定的比特。如果 Byte,Integer ,或者 Long 是作为 Varant 数据类型给出的,那么 ByteIndex 必须被设置成一个可用的索引(BitIndex 可忽略) 。如果这样做成功
35、了,方法写入 pData 中的元素。语法:result=S7ProSim1.WriteInputPoint(ByteIndex,BitIndex,Data)用途: ByteIndex 是一个 Long 型的输入参数,它表示外围输入映像缓冲区要写入的字节起始位置。ByteIndex 的有效值取决于 CPU。 BitIndex 是一个 Long 整型的输入参数,它表示要写的外围映像缓冲区中的 Bit 比特位置。它的有效值是从 0 到 7。 Data 是一个 Variant 类型的输入参数,它表示要写的值。Data 的有效值取决于数据类型。 result 是一个长整型值,它指出是否有错误发生。如果没
36、有错误发生,则结果为零。WriteInputPoint 方法下面的表格给出了 WriteInputPoint 方法中的 result 值的可能的返回代码。常量 值 描述S_OK &H0 方法成功PS_E_FAIL &H80004005 未知的错误发生PS_E_INVBYTENDX &H80040201 ByteIndex的值溢出PS_E_INVBYTECOUNT &H80040202 ByteToRead溢出PS_E_WRITEFAILED &H80040204 S7PLCSIM 拒绝写请求PS_E_ INVBITNDX &H80040205 BitIndex的值溢出PS_E_INVTYPE
37、&H80040206 无效的数据类型PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接上 S7PLCSIMPS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态事件S7ProSim 控制器事件S7ProSim ActiveX 控制器有以下事件: ConnectionError 事件 PLCSIMStateChanged 事件 ScanFinished 事件ConnectionError 事件当连接的时候有错误发生时,这个事件发生。语法:ConnectionError(ByVal ControlEngine As String,B
38、yVal Error As Long)用途: ControlEngine 保存控制器发动机的名字。 Error 保存 Windows 系统下的错误代码。如果想得到更多的信息,可以参看Windows 文档。PLCSIMStateChanged 事件当一个新的 PLC 操作模式被检测出的时候,这个事件发生。语法:PLCSIMStateChanged(NewState As String)用途:NewState 保存 S7PLCSIM 的新的操作状态。有效值是 STOP,RUN 和 RUN_P。ScanFinished 事件当 S7PLCSIM 的一个扫描结束时,这个事件发生。语法:ScanFini
39、shed(ByVal ScanInfo As Variant)用途:ScanInfo 是一个长整形的 SafeArray,它表示不同的扫描信息。 (参看下面的表来得到队列的消息信息。 )ScanInfo 的元素索引 信息0 执行时间(ms)1 已被编程了的最小循环时间(ms)2 最大执行时间(ms)3 平均循环时间(ms)4 运行 PLC 标签参考信息预先设定的常量下面是 S7ProSim ActiveX 控制器使用的常量:常量 值 描述扫描模式的值 SetScanMode()和GetScanMode()ContinuousScan 1 在连续扫描中仿真SingleScan 0 在单一扫描中仿
40、真读出的值 ReadOutputImage()S7_Byte 2 Byte 数据类型S7_Word 3 Word( 2 byte)数据类型S7_DoubleWord 4 Double Word(4byte)数据类型读出的值 ReadOutputPoint()S7_Bit 1 Bit 数据类型S7_Byte 2 Byte 数据类型S7_Word 3 Word( 2 byte)数据类型S7_DoubleWord 4 Double Word(4byte)数据类型返回代码S_OK &H0 方法成功PS_E_FAIL &H80004005 发生未知的错误PS_E_INVBYTENDX &H8004020
41、1 ByteIndex值溢出PS_E_INVBYTECOUNT &H80040202 ByteIndex和 Data 队列的大小溢出或者BytesToRead溢出PS_E_READFAILED &H80040203 S7PLCSIM 拒绝读请求PS_E_WRITEFAILED &H80040204 S7PLCSIM 拒绝写请求PS_E_INVBITNDX &H80040205 BitIndex值溢出PS_E_INVTYPE &H80040206 无效数据类型PS_E_NOTREGISTERED &H80040209 应用程序没有注册PS_E_NOTSINGLESCAN &H8004020A S
42、7PLCSIM 不是单一扫描模式PS_E_PLCSIMNOTRUNNING &H8004020E S7PLCSIM 不是 Run 模式或者 RunP 模式PS_S_ALLREADSNOTPOSSIBLE &H8004020F 方法只能成功读配置好的输出PS_S_ALLWRITESNOTPOSSIBLE &H80040210 方法只能成功写配置好的输入PS_E_NOTCONNECTED &H80040211 S7ProSim 控制器没有连接S7PLCSIMPS_E_POWEROFF &H80040212 S7PLCSIM 处于关机状态PS_E_INVALIDINPUT &H80040213 无效
43、的输入进来ScanInfo 中的元素个数NUM_OF_SCANINFO_ELEMENTS 4ScanInfo 的索引EXECUTION_TIME_NDX 0 执行时间(ms)MIN_CYCLE_TIME_NDX 1 程序已定好的最小循环时间(ms)LARGEST_CYCLE_TIME_NDX 2 最大执行时间(ms)AVERAGE_CYCLE_TIME_NDX 3 平均循环时间(ms)实例设计这个例子给出了控制器的所有属性,方法和事件的使用方法。下面的框图表示在S7ProSim 环境下的次序表。框图中所有的控制按钮都是 VB 按钮。你也可以同时查看实例设计的代码。实例设计的框图实例设计的代码=
44、DECLARATION PART OF THE FORM=Variables must be declaredOption ExplicitDefault Error Code Values of S7ProSim-Private Const S_OK = &H0Private Const PS_E_FAIL = &H80004005Private Const PS_E_INVBYTENDX = &H80040201Private Const PS_E_INVBYTECOUNT = &H80040202Private Const PS_E_READFAILED = &H80040203Priv
45、ate Const PS_E_WRITEFAILED = &H80040204Private Const PS_E_INVBITNDX = &H80040205Private Const PS_E_INVTYPE = &H80040206Private Const PS_E_NOTREGISTERED = &H80040209Private Const PS_E_NOTSINGLESCAN = &H8004020APrivate Const PS_E_MODENOTPOSSIBLE = &H8004020CPrivate Const PS_E_NOTIFICATION_EXIST = &H8004020DPrivate Const PS_E_PLCSIMNOTRUNNING = &H8004020EPrivate Const PS_S_ALLREADSNOTPOSSIBLE = &H8004020FPrivate Const PS_S_ALLWRITESNOTPOSSIBLE = &H80040210Private Const PS_E_NOTCONNECTED = &H80040211Private Const PS_E_PO