回复:同一段程序,PLCSIM模拟出来的结果不一样

长春数控

西门子1847工业学习平台

  • 帖子

    142
  • 精华

    0
  • 被关注

    5

论坛等级:游侠

注册时间:2010-11-05

普通 普通 如何晋级?

发布于 2011-03-17 10:13:53

2楼

仿真自动化控制系统提供了下述功能,“真实的”自动化控制系统不具备这些功能:

* 仿真的 CPU 中正在运行时可以用“Stop”选项中断程序,恢复“运行”时是从程序中断处开始继续处理程序。
* 与真实的 CPU 一样,仿真软件可以改变 CPU 的操作模式(RUN, RUN-P 和 STOP)。 但与实际 CPU 不同的是仿真的 CPU 切换到 STOP 模式并不会改变输出的状态。
* 仿真软件中在目标视图中变量的每个改变,其存储区对应相关地址的内容会被同时更新。CPU 并不是等到循环周期结束或开始时才更新改变的数据。
* 使用关于程序处理的选项可以指定 CPU 如何执行程序:
o 选择“By cycles” 程序执行一个周期后等待命令再执行下一个循环周期。
o 选择“Automatic”程序的处理同实际自控系统一样:一旦一个循环周期结束马上执行下一个周期。
* 仿真定时器可以使用用自动或手动方式处理,自动方式按照程序执行结果,手动方式可以给定特殊值或复位定时器。 复位定时器可以复位单独的定时器或一次复位所有定时器。
* 可以手动触发诊断中断 OB:OB40 到 OB47 (过程中断),OB70 (I/O 冗余错误),OB72 (CPU 冗余错误),OB73 (通信冗余错误),OB80 (时间错误),OB82 (诊断警告), OB83 (插拔模块警告),OB85(程序执行错误)和 OB86 (机架故障)。
* 过程映像区和 I/O 区:如果改变一个输入映像区的值, S7-PLCSIM 立即将此值复制到输入外设区。这就意味着从输入外设区写到输入过程映像区所需要的值在下一个循环周期开始时不会丢失。同样如果改变了输出映像区的一个值,此值立即被复制到输出外设区。下图所示为循环周期的过程顺序:



图 1: 循环周期的过程顺序

S7-PLCSIM 与“实际”的自动化系统还有以下不同:

* 诊断缓冲区:S7-PLCSIM 不能支持所有写入诊断缓冲区的错误消息。例如,关于 CPU 中的电池电量不足的消息或者 EEPROM 错误是不能仿真的。但大部分 I/O 和程序错误都是可以仿真的。
* 在改变操作模式时(比如从 RUN 切换到 STOP)输入输出没有“安全”状态。
* 不支持功能模块(FM)。
* 不支持 点对点通信(例如同一机架上的两个 S7-400 CPU 之间)。
* S7-PLCSIM 与 S7 400 CPU 一样支持 4 个累加器。在某些情况下 S7-PLCSIM 上运行的程序与真实的只有 2 个累加器S7 300 CPU 上运行结果不同。

输入/输出的不同
大多数 S7-300 产品系列的 CPU 可以自动配置输入/输出设备:如果将模块连接到控制器,CPU 即自动的识别此模块。对于仿真的自动化系统,这种自识别是不能模拟的。如果把一个自动组态好 I/O的 S7 300 CPU 程序装载到 S7-PLCSIM 中,系统数据中将不包含任何 I/O 组态。因此,如果使用 S7-PLCSIM 来仿真 S7 300 的程序 ,为了 CPU 能识别所使用的模块必须首先装载硬件组态。

在 S7-PLCSIM 中 S7-300 CPU 不能自动识别 I/O,例如 S7-315-2DP, S7-316-2DP or S7-318-2DP 等 CPU,为了能将硬件组态装载到 S7-PLCSIM,需要创建一个项目。拷贝相应的硬件组态到这个项目并装载到 S7-PLCSIM。然后从任意 S7 项目装载程序块,I/O 处理都不会有错误。

S7-PLCSIM 的功能范围

S7-PLCSIM 仿真 S7 控制器并包含下述存储区:


存储区


描述

计时器


T0 to T511

标志位


标志位存储区 131.072 位 (16 KB)

总输入输出地址存储区


输入输出存储区 131.072 位 (16 KB)

过程映像区(可调整;每个循环更新)




最大: 131.072 位 (16 KB)
默认设置: 8192 位 (1024 字节)

本地数据 (可调整)


最大: 64 KB
默认设置: 32 KB

代码块和数据块


2048 功能块 (FB) 和功能 (FC)
4095 数据块

系统功能块(SFBs)


SFB0, SFB1, SFB2, SFB3, SFB4, SFB5, SFB8, SFB9, SFB12, SFB13, SFB14, SFB15, SFB16, SFB19, SFB20, SFB21, SFB22, SFB23, SFB32, SFB33, SFB34, SFB35, SFB36 和 SFB37

系统功能 (SFCs)


SFC0, SFC1, SFC2, SFC3, SFC4, SFC5, SFC6, SFC7, SFC9, SFC10, SFC11, SFC13, SFC14, SFC15, SFC17, SFC18, SFC19, SFC20, SFC21, SFC22, SFC23, SFC24, SFC25, SFC26, SFC27, SFC28, SFC29, SFC30, SFC31, SFC32, SFC33, SFC34, SFC35, SFC36,SFC37, SFC38, SFC39, SFC40, SFC41, SFC42, SFC43, SFC44, SFC46, SFC47, SFC48, SFC49, SFC50, SFC51, SFC52, SFC54, SFC55, SFC56, SFC57, SFC58, SFC59, SFC60, SFC61, SFC62, SFC64, SFC65, SFC66, SFC67, SFC68, SFC69, SFC79, SFC80, SFC81
和SFC90

对于 SFC26 和 SFC27, 只支持输入参数 0。

组织块(OBs)


OB1 (主循环),OB10 到 OB17 (时钟中断) ,OB20 到 OB23 (时间延时中断) ,OB30 到 OB38 (定时中断), OB40到OB47 (过程中断) ,OB70 (I/O 冗余错误) ,OB72 (CPU冗余错误) ,OB73 (通讯冗余错误) ,OB80 (时间错误) ,OB82 (诊断中断) ,OB81 (电源出错) ,OB83 (删除/插入模板中断), OB84 (CPU 硬件故障), OB85 (程序执行优先级故障) ,OB86 (机架出错) ,OB87 (通讯出错) 。OB90 (后台组织块), OB100 (暖启动) ,OB101 (热启动) ,OB102 (冷启动) ,OB121 (编程错误) ,OB122 (I/O 访问错误)

请注意以下SFB,SFC 和 OB 将作为 NOP 语句执行(不需操作)。程序中调用的 NOP 不能修改。

* SFB12, SFB13, SFB14, SFB15, SFB16, SFB19, SFB20, SFB21, SFB22 和 SFB23
* SFC7, SFC11, SFC25, SFC35, SFC36, SFC37, SFC38, SFC48, SFC60, SFC61, SFC62, SFC65, SFC66, SFC67, SFC68, SFC69和SFC81
* OB81, OB84, OB87 和 OB90
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54617条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。