Professional Documents
Culture Documents
S 7 WSPSCK
S 7 WSPSCK
4 1
___________________
简介
___________________
S7ProSim 概述 2
___________________
方法 3
SIMATIC
___________________
事件 4
工程工具
S7ProSim V5.4 ___________________
类型定义 5
操作手册
07/2011
A5E03432376-02
法律资讯
法律资讯
警告提示系统
为了您的人身安全以及避免财产损失,必须注意本手册中的提示。人身安全的提示用一个警告三角表示,仅与财产
损失有关的提示不带警告三角。警告提示根据危险等级由高到低如下表示。
危险
表示如果不采取相应的小心措施,将会导致死亡或者严重的人身伤害。
警告
表示如果不采取相应的小心措施,可能导致死亡或者严重的人身伤害。
小心
带有警告三角,表示如果不采取相应的小心措施,可能导致轻微的人身伤害。
小心
不带警告三角,表示如果不采取相应的小心措施,可能导致财产损失。
注意
表示如果不注意相应的提示,可能会出现不希望的结果或状态。
当出现多个危险等级的情况下,每次总是使用最高等级的警告提示。如果在某个警告提示中带有警告可能导致人身
伤害的警告三角,则可能在该警告提示中另外还附带有可能导致财产损失的警告。
合格的专业人员
本文件所属的产品/系统只允许由符合各项工作要求的合格人员进行操作。其操作必须遵照各自附带的文件说明,特
别是其中的安全及警告提示。 由于具备相关培训及经验,合格人员可以察觉本产品/系统的风险,并避免可能的危
险。
Siemens 产品
请注意下列说明:
警告
Siemens 产品只允许用于目录和相关技术文件中规定的使用情况。如果要使用其他公司的产品和组件,必须得到
Siemens 推荐和允许。正确的运输、储存、组装、装配、安装、调试、操作和维护是产品安全、正常运行的前
提。必须保证允许的环境条件。必须注意相关文件中的提示。
商标
所有带有标记符号 ® 的都是西门子股份有限公司的注册商标。标签中的其他符号可能是一些其他商标,这是出于保
护所有者权利的 目地由第三方使用而特别标示的。
责任免除
我们已对印刷品中所述内容与硬件和软件的一致性作过检查。然而不排除存在偏差的可能性,因此我们不保证印刷
品中所述内容与硬件和软件完全一致。印刷品中的数据都按规定经过检测,必要的修正值包含在下一版本中。
1 简介 ..................................................................................................................................................5
2 S7ProSim 概述 .................................................................................................................................7
2.1 向项目中添加 S7ProSim COM 对象 ..................................................................................... 7
2.2 通过 S7ProSim 编程 S7-PLCSIM 接口................................................................................. 8
3 方法 ................................................................................................................................................11
3.1 BeginScanNotify................................................................................................................. 13
3.2 Connect.............................................................................................................................. 14
3.3 ConnectExt......................................................................................................................... 15
3.4 Continue............................................................................................................................. 16
3.5 Disconnect ......................................................................................................................... 17
3.6 EndScanNotify ................................................................................................................... 18
3.7 ExecuteNmsScan............................................................................................................... 19
3.8 ExecuteNScans.................................................................................................................. 20
3.9 ExecuteSingleScan ............................................................................................................ 21
3.10 GetPauseState ................................................................................................................... 22
3.11 GetScanMode .................................................................................................................... 23
3.12 GetStartUpSwitch............................................................................................................... 24
3.13 GetState ............................................................................................................................. 25
3.14 HotStartWithSavedValues.................................................................................................. 26
3.15 Pause ................................................................................................................................. 27
3.16 ReadDataBlockValue ......................................................................................................... 28
3.17 ReadFlagValue .................................................................................................................. 30
3.18 ReadOutputImage .............................................................................................................. 32
3.19 ReadOutputPoint................................................................................................................ 34
3.20 SavePLC ............................................................................................................................ 36
3.21 SetScanMode..................................................................................................................... 37
3.22 SetStartUpSwitch ............................................................................................................... 38
3.23 SetState ............................................................................................................................. 39
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 3
目录
S7ProSim V5.4
4 操作手册, 07/2011, A5E03432376-02
简介 1
S7ProSim 可用于实现通过编程方式访问 S7 PLCSIM 中的仿真 PLC。 通过 S7ProSim,
您可以编写软件以执行诸如更改仿真 PLC 的钥匙操作开关位置、在单次扫描模式中运行
控制程序以及读取或写入控制器值这样的任务和许多其它任务。
目标用户群
本手册主要面向开发人员、程序员以及维护人员,并要求他们有可编程 S7 控制器方面以
及 Visual Basic(6.0 或 .NET)或 Visual C++(6.0 或 .NET)软件开发方面的知识与经
验。
本手册的适用范围
其它手册
有关更多信息,请参见 STEP 7 和 S7-PLCSIM 的在线帮助及以下手册:
附加支持
如果您有技术方面的问题,或者需要获取关于订购本产品或培训课程的信息,请联系您的
Siemens 代表。
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 5
简介
S7ProSim V5.4
6 操作手册, 07/2011, A5E03432376-02
S7ProSim 概述 2
S7ProSim 提供一个 COM 对象,用于对 S7-PLCSIM 过程仿真用户接口进行程序控制的
访问。在任何支持向 S7-PLCSIM 过程仿真中附加 COM 对象的应用程序中,您都可使用
S7ProSim。
本在线文档介绍如何向应用程序中添加 S7ProSim。 同时也解释 S7ProSim 的特性、用户
接口和函数,以及各方法和事件的软件对象定义。
步骤
例如,在 Microsoft Visual Basic(6.0 或 .NET)中,按照以下步骤添加 S7ProSim COM
对象引用:
1. 选择菜单命令“项目 > 引用”(Project > References) 或“项目 > 添加引用”(Project > Add
Reference)。
2. 在“引用”(References) 对话框中,选中 Siemens S7ProSim COM 对象的复选框。
(在 Visual Basic .NET 中,此选择内容位于“引用”(References) 对话框的“COM”选项
卡下。)
3. 单击“确定”(OK)。
在添加项目引用后,便可使用“对象浏览器”(Object Browser) 查看 S7ProSim COM 对
象的方法和事件。 在“对象浏览器”(Object Browser) 中,在库的下拉列表中选择
S7PROSIMLib。 S7ProSim 类别中包含可用来编程 S7-PLCSIM 接口的方法和事件。
在 Microsoft Visual Studio C++ V6.0 或者在 Microsoft Visual C++ .NET 中,按照特定编
程环境的相应步骤添加 COM 对象。
在 Microsoft Visual C# .NET 中,可以通过执行以下步骤添加对 S7ProSim COM 对象的
引用:
1. 选择“项目 > 添加引用”(Project > Add reference) 菜单命令。
2. 在“COM”选项卡中,选择组件“Siemens S7ProSim COM 对象”(Siemens S7ProSim
COM Object)。
3. 单击“确定”(OK) 确认选择。
4. 单击“确定”(OK) 关闭对话框。
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 7
S7ProSim 概述
2.2 通过 S7ProSim 编程 S7-PLCSIM 接口
步骤
S7ProSim V5.4
8 操作手册, 07/2011, A5E03432376-02
S7ProSim 概述
2.2 通过 S7ProSim 编程 S7-PLCSIM 接口
// released
// when the application shuts down
IS7ProSim * GetPtr()
{
return m_pProSim;
};
// Attributes
protected:
// IProSimPtr is a CComPtr (smart ptr) for the IProSim
// interface
// It is from the dll file from #import
// CoCreateInstance will be called automatically for the
ptr object
// in the constructor
// of this class
// The release of ptr is automatically called by the
destructor
// of this class
IS7ProSimPtr m_pProSim;
};
– 示例: C#
using S7PROSIMLib;
...
private S7ProSim ps;
// 创建 COM 对象连接
ps = new S7ProSim();
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 9
S7ProSim 概述
2.2 通过 S7ProSim 编程 S7-PLCSIM 接口
S7ProSim V5.4
10 操作手册, 07/2011, A5E03432376-02
方法 3
概述
方法 说明
BeginScanNotify 对 S7ProSim 进行控制器回叫注册。 ScanFinished 和
(页 13) PLCSimStateChanged 事件将会在发生相应事件时发送。
Connect (页 14) 将 S7ProSim 连接到 S7-PLCSIM。
ConnectExt (页 15) 将 S7ProSim 与编号为 InstanceNumber 的 S7-PLCSIM 实例
连接在一起。
Continue (页 16) 继续已暂停的仿真。
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 11
方法
方法 说明
ReadDataBlockValue 读取 S7-PLCSIM 的 DB 存储区域中某一特定的位、字节、字
(页 28) 或双字。
ReadFlagValue (页 30) 读取 S7-PLCSIM 位存储区域 (M) 中某一特定的位、字节、字
或双字。
ReadOutputImage 读取 S7-PLCSIM 外围输出(PQ 存储区域)中的元素。
(页 32)
ReadOutputPoint 读取外围输出(PQ 存储区域)中的某一特定位(布尔型)、
(页 34) 字节(字节型)、双字节字(整型)或四字节字(长型)。
SavePLC (页 36) 将当前仿真的 PLC 数据保存到文件中。 保存的数据包括程
序、硬件配置、“CPU”子窗口中显示的钥匙开关位置、程序执
行类型(连续扫描或单次扫描)、I/O 状态、时间值、符号地
址和电源设置(开或关)。
S7ProSim V5.4
12 操作手册, 07/2011, A5E03432376-02
方法
3.1 BeginScanNotify
3.1 BeginScanNotify
STDMETHOD(CS7ProSim::BeginScanNotify)()
说明
参数
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 13
方法
3.2 Connect
3.2 Connect
STDMETHOD(Connect)()
说明
参数
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
14 操作手册, 07/2011, A5E03432376-02
方法
3.3 ConnectExt
3.3 ConnectExt
STDMETHOD (ConnectExt)(/*[in]*/ long InstanceNumber)
说明
参数
错误处理
在 ConnectionError 事件中报告错误,而不是通过函数调用的方式报告。
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_PLCISCONNECT 0x8004020E: S7-PLCSIM 已连接
ED
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 15
方法
3.4 Continue
3.4 Continue
STDMETHOD(CS7ProSim::Continue)()
说明
继续已暂停的仿真。
参数
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
Visual Basic 用法
Sub Continue()
S7ProSim V5.4
16 操作手册, 07/2011, A5E03432376-02
方法
3.5 Disconnect
3.5 Disconnect
STDMETHOD(CS7ProSim::Disconnect)()
说明
参数
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 17
方法
3.6 EndScanNotify
3.6 EndScanNotify
STDMETHOD(CS7ProSim::EndScanNotify)()
说明
参数
错误处理
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
PS_E_NOTREGISTERE 0x80040209: S7ProSim 未进行 S7-PLCSIM 回叫注册
D
Visual Basic 用法
S7ProSim V5.4
18 操作手册, 07/2011, A5E03432376-02
方法
3.7 ExecuteNmsScan
3.7 ExecuteNmsScan
STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)
说明
参数
参数 声明 说明
MsNumber 输入 扫描循环将持续执行的时间(毫秒)。
错误处理
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005: 未指定的错误
PS_E_NOTSINGLESCA 0x8004020A: S7-PLCSIM 中未设置单次扫描程序执行
N
PS_E_PLCNOTRUNNIN 0x8004020E: S7-PLCSIM 未运行
G
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
Visual Basic 用法
ExecuteNmsScan(MsNumber As Long) As Long function
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 19
方法
3.8 ExecuteNScans
3.8 ExecuteNScans
STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)
说明
参数
参数 声明 说明
NScanNumb 输入 要执行的扫描循环次数。
er
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005: 未指定的错误
PS_E_NOTSINGLESCA 0x8004020A: S7-PLCSIM 中并未设置单次扫描模式
N
PS_E_PLCNOTRUNNIN 0x8004020E: S7-PLCSIM 未运行
G
PS_E_NOTCONNECTE 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
D
Visual Basic 用法
S7ProSim V5.4
20 操作手册, 07/2011, A5E03432376-02
方法
3.9 ExecuteSingleScan
3.9 ExecuteSingleScan
STDMETHOD(CS7ProSim::ExecuteSingleScan)()
说明
参数
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 21
方法
3.10 GetPauseState
3.10 GetPauseState
STDMETHOD(CS7ProSim::GetPauseState)( PauseStateConstants *pVal)
说明
返回 S7-PLCSIM 当前的暂停状态。
参数
参数 声明 说明
备注
错误处理
返回值
值 含义
Visual Basic 用法
GetPauseState() As PauseStateConstants function
S7ProSim V5.4
22 操作手册, 07/2011, A5E03432376-02
方法
3.11 GetScanMode
3.11 GetScanMode
STDMETHOD(CS7ProSim::GetScanMode)( ScanModeConstants *pVal)
说明
报告 S7-PLCSIM 的工作模式。
参数
参数 声明 说明
备注
错误处理
返回值
值 含义
Visual Basic 用法
GetScanMode() As ScanModeConstants function
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 23
方法
3.12 GetStartUpSwitch
3.12 GetStartUpSwitch
STDMETHOD(CS7ProSim::GetStartUpSwitch)( RestartSwitchPosition *pP
os)
说明
获取 S7-PLCSIM 的启动设置(热启动、暖启动或冷启动)。
参数
参数 声明 说明
备注
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
24 操作手册, 07/2011, A5E03432376-02
方法
3.13 GetState
3.13 GetState
STDMETHOD(CS7ProSim::GetState)( BSTR *pVal)
说明
参数
参数 声明 说明
备注
从 Visual Basic 或 C# 中调用时,状态在函数返回值中输出,没有 pVal 参数。
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 25
方法
3.14 HotStartWithSavedValues
3.14 HotStartWithSavedValues
STDMETHOD(CS7ProSim::HotStartWithSavedValues)( BOOL val)
说明
参数
参数 声明 说明
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
26 操作手册, 07/2011, A5E03432376-02
方法
3.15 Pause
3.15 Pause
STDMETHOD(CS7ProSim::Pause)()
说明
暂停仿真。
参数
错误处理
错误在 ConnectionError 事件中返回,而不是通过函数调用的方式返回。
返回值
值 含义
Visual Basic 用法
Sub Pause()
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 27
方法
3.16 ReadDataBlockValue
3.16 ReadDataBlockValue
STDMETHOD(CS7ProSim::ReadDataBlockValue)(
long BlockNumber,
long ByteIndex,
long BitIndex,
PointDataTypeConstants DataType,
VARIANT* pData)
说明
读取数据块存储区中的某一特定位(布尔型)、字节(字节型)、双字节字(整型)或四
字节字(长型)。
参数
参数 声明 说明
注
如果 DataType 为 S7_Bit,则 ByteIndex 和 BitIndex 必须都设置为有效标号。如果成
功,该方法将返回 pData 中给定的位,其数据类型变量将为布尔型。
S7ProSim V5.4
28 操作手册, 07/2011, A5E03432376-02
方法
3.16 ReadDataBlockValue
错误处理
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005: 未指定的错误
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
PS_E_BADTYPE 0x80040206: 数据类型无效
PS_E_BADBYTENDX 0x80040201: 字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_READFAILED 0x80040203: 读取操作失败
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 29
方法
3.17 ReadFlagValue
3.17 ReadFlagValue
STDMETHOD(CS7ProSim::ReadFlagValue)( long ByteIndex,
long BitIndex,
PointDataTypeConstants DataT
ype,
VARIANT* pData)
说明
读取位存储区中的某一特定位(布尔型)、字节(字节型)、双字节字(整型)或四字节
字(长型)。
参数
参数 声明 说明
错误处理
S7ProSim V5.4
30 操作手册, 07/2011, A5E03432376-02
方法
3.17 ReadFlagValue
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_NOTCONNECTED 0x80040211:S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212:S7-PLCSIM 已关闭
PS_E_BADTYPE 0x80040206:数据类型无效
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_READFAILED 0x80040203: 读取操作失败
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 31
方法
3.18 ReadOutputImage
3.18 ReadOutputImage
STDMETHOD(CS7ProSim::ReadOutputImage)( long StartIndex,
long ElementsToRead,
ImageDataTypeConstants DataType,
VARIANT* pData)
说明
参数
参数 声明 说明
错误处理
S7ProSim V5.4
32 操作手册, 07/2011, A5E03432376-02
方法
3.18 ReadOutputImage
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_READFAILED 0x80040203: 读取操作失败
PS_E_BADTYPE 0x80040206: 数据类型无效
PS_E_NOTALLREADSWORK 0x8004020F: 部分读取操作未成功
ED
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 33
方法
3.19 ReadOutputPoint
3.19 ReadOutputPoint
STDMETHOD(CS7ProSim::ReadOutputPoint)( long ByteIndex,
long BitIndex,
PointDataTypeConstants DataType,
VARIANT* pData)
说明
读取外围输出(PQ 存储区域)中的某一特定位(布尔型)、字节(字节型)、双字节字
(整型)或四字节字(长型)。
参数
参数 声明 说明
备注
错误处理
S7ProSim V5.4
34 操作手册, 07/2011, A5E03432376-02
方法
3.19 ReadOutputPoint
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的大
小无效
PS_E_READFAILED 0x80040203: 读取操作失败
PS_E_BADBITNDX 0x80040205: 字节标号无效
PS_E_BADTYPE 0x80040206: 数据类型无效
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
Visual Basic 用法
Sub ReadOutputPoint(ByteIndex As Long, BitIndex As Long, DataType
As PointDataTypeConstants, pData) As Long
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 35
方法
3.20 SavePLC
3.20 SavePLC
STDMETHOD(CS7ProSim::SavePLC)( BSTR FileName)
说明
保存的数据包括程序、硬件配置、“CPU”子窗口中显示的钥匙开关位置、程序执行类型
(连续扫描或单次扫描)、I/O 状态、时间值、符号地址和电源设置(开或关)。
参数
参数 声明 说明
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
36 操作手册, 07/2011, A5E03432376-02
方法
3.21 SetScanMode
3.21 SetScanMode
STDMETHOD(CS7ProSim::SetScanMode)( ScanModeConstants newVal)
说明
设置 S7-PLCSIM 的工作模式。
参数
参数 声明 说明
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 37
方法
3.22 SetStartUpSwitch
3.22 SetStartUpSwitch
STDMETHOD(CS7ProSim::SetStartUpSwitch)( RestartSwitchPosition
postion)
说明
参数
参数 声明 说明
位置 输入 要为 S7-PLCSIM 的启动位置设置的值
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
38 操作手册, 07/2011, A5E03432376-02
方法
3.23 SetState
3.23 SetState
STDMETHOD(CS7ProSim::SetState)( BSTR newVal)
说明
参数
参数 声明 说明
错误处理
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005: 未指定的错误
E_INVALID_STATE 0x00008002: 无效状态
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 39
方法
3.24 StartPLCSim
3.24 StartPLCSim
STDMETHOD(CS7ProSim::StartPLCSim)( BSTR plcFile)
说明
参数
参数 声明 说明
错误处理
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
40 操作手册, 07/2011, A5E03432376-02
方法
3.25 StartPLCSimExt
3.25 StartPLCSimExt
STDMETHOD(StartPLCSimExt)(/*[in]*/ BSTR plcFile)
说明
参数
参数 声明 说明
错误处理
在 ConnectionError 事件中报告错误,而不是通过函数调用的方式报告。
返回值
值 含义
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 41
方法
3.26 WriteDataBlockValue
3.26 WriteDataBlockValue
STDMETHOD(CS7ProSim::WriteDataBlockValue)(
long BlockNumber,
long ByteIndex,
long BitIndex,
const VARIANT* pData)
说明
将某一特定位(布尔型)、字节(字节型)、双字节字(整型)或四字节字(长型)写入
数据块存储区中。
参数
参数 声明 说明
备注
错误处理
S7ProSim V5.4
42 操作手册, 07/2011, A5E03432376-02
方法
3.26 WriteDataBlockValue
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_NOTCONNECTED 0x80040211:S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212:S7-PLCSIM 已关闭
PS_E_BADTYPE 0x80040206:数据类型无效
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_WRITEFAILED 0x80040204: 写入操作失败
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 43
方法
3.27 WriteFlagValue
3.27 WriteFlagValue
STDMETHOD(CS7ProSim::WriteFlagValue)( long ByteIndex,
long BitIndex,
const VARIANT* pData)
说明
将某一特定位(布尔型)、字节(字节型)、双字节字(整型)或四字节字(长型)写入
位存储区中。
参数
参数 声明 说明
备注
错误处理
S7ProSim V5.4
44 操作手册, 07/2011, A5E03432376-02
方法
3.27 WriteFlagValue
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_NOTCONNECTED 0x80040211:S7ProSim 未与 S7-PLCSIM 连接
PS_E_POWEROFF 0x80040212:S7-PLCSIM 已关闭
PS_E_BADTYPE 0x80040206:数据类型无效
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_WRITEFAILED 0x80040204: 写入操作失败
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 45
方法
3.28 WriteInputImage
3.28 WriteInputImage
STDMETHOD(CS7ProSim::WriteInputImage)( long StartIndex, const
VARIANT* pData)
说明
参数
参数 声明 说明
备注
要写入的元素的类型取决于“数据”中元素的类型。 所有元素必须是同一数据类型。 字节
数组写入字节,整数数组写入字,长型数组写入双字。 写入的值未经处理,并未由该方
法进行任何形式的解释或转换。 写入元素的数量取决于“数据”所指向的数组的大小。
错误处理
S7ProSim V5.4
46 操作手册, 07/2011, A5E03432376-02
方法
3.28 WriteInputImage
返回值
值 含义
S_OK 0x00000000:成功代码
E_FAIL 0x80004005:未指定的错误
PS_E_BADBYTENDX 0x80040201:字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数
据数组的大小无效
PS_E_WRITEFAILED 0x80040204: 写入操作失败
PS_E_BADTYPE 0x80040206: 数据类型无效
PS_E_NOTALLWRITESWORKED 0x80040210: 部分写入操作未成功
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM
连接
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 47
方法
3.29 WriteInputPoint
3.29 WriteInputPoint
STDMETHOD(CS7ProSim::WriteInputPoint)( long ByteIndex,
long BitIndex,
const VARIANT* pData)
说明
向外围输入(PI 存储区域)中写入数据变量中的一个特定位(布尔型)、字节(字节
型)、双字节字(整型)或四字节字(长型)。
参数
参数 声明 说明
备注
错误处理
S7ProSim V5.4
48 操作手册, 07/2011, A5E03432376-02
方法
3.29 WriteInputPoint
返回值
值 含义
Visual Basic 用法
Sub WriteInputPoint(ByteIndex As Long, BitIndex As Long, Data) As
Long
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 49
方法
3.29 WriteInputPoint
S7ProSim V5.4
50 操作手册, 07/2011, A5E03432376-02
事件 4
概述
事件 含义
4.1 ConnectionError
HRESULT ConnectionError(BSTR ControlEngine, long Error)
说明
无法与 S7 PLCSIM 中的仿真 PLC 建立连接时或调用 S7ProSim 方法出错时生成。
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 51
事件
4.2 PauseStateChanged
4.2 PauseStateChanged
HRESULT PauseStateChanged(BSTR NewState)
说明
Visual Basic 用法
4.3 PLCSimStateChanged
HRESULT PLCSimStateChanged(BSTR NewState)
说明
Visual Basic 用法
4.4 ScanFinished
HRESULT ScanFinished(VARIANT ScanInfo)
说明
Visual Basic 用法
Event ScanFinished(ScanInfo)
S7ProSim V5.4
52 操作手册, 07/2011, A5E03432376-02
事件
4.5 ScanModeChanged
4.5 ScanModeChanged
HRESULT ScanModeChanged(BSTR NewState)
说明
Visual Basic 用法
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 53
事件
4.5 ScanModeChanged
S7ProSim V5.4
54 操作手册, 07/2011, A5E03432376-02
类型定义 5
5.1 类型定义
类型定义概述
类型 说明
5.2 CPURunMode
enum CPURunMode { CONTINUOUS_SCAN, SINGLE_SCAN, SINGLE_STEP }
说明
元素
CONTINUOUS_SCAN
SINGLE_SCAN
SINGLE_STEP
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 55
类型定义
5.3 ImageDataTypeConstants
5.3 ImageDataTypeConstants
enum {
S7Byte = 2,
S7Word = 3,
S7DoubleWord = 4
}
说明
代表 ReadOutputImage 方法的常量
元素
S7Byte
S7DoubleWord
S7Word
5.4 PauseStateConstants
enum {
Running = 0,
Paused = 1,
Disabled = 2
}
说明
代表暂停状态的常量
元素
DISABLED
Paused
Running
S7ProSim V5.4
56 操作手册, 07/2011, A5E03432376-02
类型定义
5.5 PointDataTypeConstants
5.5 PointDataTypeConstants
enum {
S7_Bit = 1,
S7_Byte = 2,
S7_Word = 3,
S7_DoubleWord = 4
}
说明
代表 ReadOutputPoint 方法的常量
元素
S7_Bit
S7_Byte
S7_DoubleWord
S7_Word
5.6 RestartSwitchPosition
enum {
WarmStart = 0,
HotStart = 1,
ColdStart = 2
}
说明
代表前面板启动开关位置的常量
元素
ColdStartRestart 位置 OB102
HotStartRestart 位置 OB101
WarmStartRestart 位置 OB100
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 57
类型定义
5.7 ScanModeConstants
5.7 ScanModeConstants
enum {
SingleScan = 0,
ContinuousScan = 1
}
说明
代表工作模式的常量
元素
ContinuousScan
SingleScan
5.8 tagPauseState
enum tagPauseState { ENABLED_RUNNING, ENABLED_PAUSED, DISABLED }
说明
代表暂停状态的常量
元素
DISABLED
ENABLED_PAUSED
ENABLED_RUNNING
S7ProSim V5.4
58 操作手册, 07/2011, A5E03432376-02
类型定义
5.9 ScanInfo 常量
5.9 ScanInfo 常量
ScanInfo
表格 5- 1 ScanInfo 常量
组件 含义 定义
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 59
类型定义
5.10 错误返回代码
5.10 错误返回代码
错误返回代码 - 概述
错误返回代码 含义
PS_E_BADBITNDX 0x80040205: 字节标号无效
PS_E_BADBYTECOUNT 0x80040202: 对于给定的起始字节标号,数据数组的
大小无效
PS_E_BADBYTENDX 0x80040201: 字节标号无效
PS_E_BADTYPE 0x80040206: 数据类型无效
PS_E_INVALIDCALLBACK 0x80040207: 回叫无效
PS_E_INVALIDDISPATCH 0x80040208: 分派无效
PS_E_INVALIDINPUT 0x80040213: 输入无效
PS_E_INVALIDSCANTYPE 0x8004020B: 扫描类型无效,必须是
ScanModeConstants 中的一个。
PS_E_MAXINSTANCE 0x80040214: 已达到最多可打开的 S7-PLCSIM 实例
数目
PS_E_MODENOTPOSSIBLE 0x8004020C: S7-PLCSIM 无法设置指定的工作模式
PS_E_NOTALLREADSWORK 0x8004020F: 部分读取操作未成功
ED
PS_E_NOTALLWRITESWORK 0x80040210: 部分写入操作未成功
ED
PS_E_NOTCONNECTED 0x80040211: S7ProSim 未与 S7-PLCSIM 连接
PS_E_NOTIFICATION_EXIST 0x8004020D: S7ProSim 已进行通知注册
PS_E_NOTREGISTERED 0x80040209: S7ProSim 未进行 S7-PLCSIM 回叫注
册
PS_E_NOTSINGLESCAN 0x8004020A: S7-PLCSIM 中未设置单次扫描程序执
行
PS_E_PLCNOTRUNNING 0x8004020E: S7-PLCSIM 未运行
PS_E_POWEROFF 0x80040212: S7-PLCSIM 已关闭
PS_E_READFAILED 0x80040203: 读取操作失败
PS_E_WRITEFAILED 0x80040204: 写入操作失败
E_FAIL 0x80004005: 未指定的错误
E_INVALID_STATE 0x00008002: 无效状态
S_OK 0x00000000: 成功代码
STG_E_CANTSAVE 0x80030103: 无法保存
S7ProSim V5.4
60 操作手册, 07/2011, A5E03432376-02
索引
GetScanMode 方法, 23
GetStartUpSwitch 方法, 24
GetState 方法, 25
A
AVERAGE_CYCLE_TIME_NDX, 59
H
HotStart, 57
B
设置, 26, 38
BeginScanNotify 方法, 13 HotStartWithSavedValues 方法, 26
C I
ColdStart, 57 ImageDataTypeConstants, 56
设置, 38 IS_PLC_RUNNING_NDX, 59
Connect 方法, 14
ConnectExt 方法, 15
L
ConnectionError 事件, 51
Continue 方法, 16 LARGEST_CYCLE_TIME_NDX, 59
CPURunMode, 55
M
D MIN_CYCLE_TIME_NDX, 59
Disconnect 方法, 17
N
E NUM_OF_SCANINFO_ELEMENTS, 59
EndScanNotify 方法, 18
ExecuteNmsScan 方法, 19 P
ExecuteNScans 方法, 20
Pause 方法, 27
ExecuteSingleScan 方法, 21
PauseStateChanged 事件, 52
EXECUTION_TIME_NDX, 59
PauseStateConstants, 56
PLCSIM,启动, 40, 41
G PLCSimStateChanged 事件, 52
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 61
索引
R W
ReadDataBlockValue 方法, 28 WarmStart, 57
ReadFlagValue 方法, 30 设置, 38
ReadOutputImageT 方法, 32 WriteDataBlockValue 方法, 42
ReadOutputPoint 方法, 34 WriteFlagValue 方法, 44
RestartSwitchPosition, 57 WriteInputImage 方法, 46
WriteInputPoint 方法, 48
S
S7-PLCSIM,启动, 26, 40, 41 三划
S7ProSim 工作模式
概述, 7
S7ProSim Pro 方法 四划
ReadDataBlockValue, 28
为 S7-PLCSIM 编程 S7ProSim 接口, 8
ReadFlagValue, 30
引用, 7
WriteDataBlockValue, 42 方法
WriteFlagValue, 44 BeginScanNotify, 13
SavePLC 方法, 36 Connect, 14
ScanFinished 事件, 52 ConnectExt, 15
ScanInfo 常量, 59 Continue, 16
ScanModeChanged 事件, 53 EndScanNotify, 18
ScanModeConstants, 58 ExecuteNmsScan, 19
SetScanMode 方法, 37 ExecuteNScans, 20
SetStartUpSwitch 方法, 38 ExecuteSingleScan, 21
SetState 方法, 39 GetPauseState, 22
Siemens S7ProSim COM 对象,添加到项目, 7 GetScanMode, 23
StartPLCSim 方法, 40 GetStartUpSwitch, 24
StartPLCSimExt 方法, 41 GetState, 25
HotStartWithSavedValues, 26
T Pause, 27
ReadDataBlockValue, 28
tagPauseState, 58
ReadFlagValue, 30
ReadOutputImage, 32
ReadOutputPoint, 34
S7ProSim V5.4
62 操作手册, 07/2011, A5E03432376-02
索引
SavePLC, 36 写入, 44
SetScanMode, 37 读取, 30
SetStartUpSwitch, 38 位存储器值
SetState, 39 写入, 44
StartPLCSim, 40 读取, 30
StartPLCSimExt, 41 启动开关位置, 57
WriteDataBlockValue, 42 设置, 38
WriteFlagValue, 44 获取, 24
WriteInputImage, 46 返回值, 60
WriteInputPoint, 48
断开连接, 17 八划
事件
五划 ConnectionError, 51
PauseStateChanged, 52
写入
位存储器值 (M), 44 PLCSimStateChanged, 52
输入映像, 46 ScanModeChanged, 53
输入点, 48 事件处理程序, 8
单次扫描程序执行
加载保存的 .plc 文件, 40, 41
ExecuteNmsScan, 19
对 S7ProSim COM 对象的引用
ExecuteNScans, 20
Microsoft Visual Basic, 7
ExecuteSingleScan, 21
Microsoft Visual C#, 7
GetScanMode, 23
Microsoft Visual Studio C++, 7
ScanModeConstants, 58
SetScanMode, 37
六划 定义的常量, 55
在热启动时加载外围 I/O, 26 CPURunMode, 55
扫描执行方法 ImageDataTypeConstants, 56
ExecuteNmsScan, 19 PauseStateConstants, 56
ExecuteNScans, 20 PointDataTypeConstants, 57
ExecuteSingleScan, 21 RestartSwitchPosition, 57
扫描通知, 13, 18 ScanModeConstants, 58
tagPauseState, 58
七划 枚举类型, 55
CPURunMode, 55
位存储器
ImageDataTypeConstants, 56
S7ProSim V5.4
操作手册, 07/2011, A5E03432376-02 63
索引
PauseStateConstants, 56 CPURunMode, 55
PointDataTypeConstants, 57 ImageDataTypeConstants, 56
RestartSwitchPosition, 57 PauseStateConstants, 56
ScanModeConstants, 58 PointDataTypeConstants, 57
tagPauseState, 58 RestartSwitchPosition, 57
ScanModeConstants, 58
tagPauseState, 58
九划
保存 .PLC 文件, 36
持续扫描程序执行 十二划
GetScanMode, 23 暂停状态
ScanModeConstants, 58 设置, 16, 27
SetScanMode, 37 获取, 22
类型定义, 55
CPURunMode, 55
十三划
ImageDataTypeConstants, 56
数据块 (DB) 值
PauseStateConstants, 56
写入, 42
PointDataTypeConstants, 57
读取, 28
RestartSwitchPosition, 57
概述, 7
ScanModeConstants, 58
简介, 7
tagPauseState, 58
钥匙开关位置 错误返回代码, 60
设置, 39
获取, 25
项目引用, 7
十划
读取
位存储器值 (M), 30
数据块值 (DB)T, 28
输出, 34
输出映像, 32
十一划
常量, 55
S7ProSim V5.4
64 操作手册, 07/2011, A5E03432376-02