西门子(中国)有限公司(SLC)

注册 登录

  签到   每日登录:+1西币 +1经验值我的支持中心

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。

技术论坛


编辑推荐: 关闭

请填写推广理由:

应用探讨——STEP 7 PLCSIM功能和使用技巧探讨

作者 主题
总坛主
西门子官方工程师

经验值: 21712
发帖数: 3689
精华帖: 7
主题:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 楼主 2011-08-17 09:41:53
PLCSIM提供了一个仿真PLC的运算和通信环境,方便我们在现场调试前对程序进行调试,尽早发现错误。但PLCSIM不是真实的PLC。PLCSIM与真实PLC有那些具体差别,能模拟调试那些通信环境,有哪些PLC功能无法通过PLCSIM进行仿真测试?希望大家借此机会提出使用时遇到的问题,交流使用经验,共同提高。

下载中心参考文档:
38726591 如何仿真两个 CPU 模块间的通讯
16522013 如何将 S7-PLCSIM 用于 SIMATIC PCS 7?
11610958 S7-PLCSIM 和一个“真实的”自动化控制系统有哪些不同?
21490282 怎样通过PLCSIM仿真程序来测试I/O?
A0366 PLCSIM仿真S7-400之间的S7通讯
A0247 S7-PLCSIM使用入门

本次探讨的发帖整理请参见此处

活动奖励:
此次集中交流将持续至9月9日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友,还可以在当前的可兑换奖品中免费挑选任一款奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=890803

奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 1楼 2011-08-17 15:11:50
与真实PLC的差别:
1、对PLCSIM STOP后,程序再开始时,从中断处开始执行。
2、对PLCSIM STOP时,不影响输出状态。
3、在子窗口修改变量时,其修改立即有效,不会等到下个周期。
4、可以手动修改或复位定时器的值。
5、可以实现单周期操作模式。
6、可以触发OB块。
7、对过程映像区的修改立即生效。
8、诊断缓冲区:S7-PLCSIM 不能支持所有写入诊断缓冲区的错误消息。例如,关于 CPU 中的电池电量不足的消息或者 EEPROM 错误是不能仿真的。但大部分 I/O 和程序错误都是可以仿真的。
9、不支持所有的诊断信息,例如EEPROM信息。
10、不支持 点对点通信(例如同一机架上的两个 S7-400 CPU 之间)。
从 S7-PLCSIM V5.4+SP3 开始,用户可以使用 S7-PLCSIM 在一个 STEP 7 项目中同时仿真多 CPU 并建立 CPU 间的通讯。
11、S7-PLCSIM提供高档CPU才有的系统资源,例如定时器范围为T0-T2047,M范围为16K,所以用S7-PLCSIM模拟通过的程序(假设使用了定时器T2000),可能会无法下载到低档CPU上运行(513-2AG10-0AB0D的定时器范围是T0-T255)
12、不支持FM功能
13、不支持通信功能
14、有类似于400的4个累加器,所以不同于2个累加器的300CPU。
15、部分功能块,例如SFB12、13,SFC7,、11,OB55、56,S7-PLCSIM执行空操作。
16、输入/输出的不同
在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-300 产品系列的 CPU 可以自动配置输入/输出设备:如果将模块连接到控制器,CPU 即自动的识别此模块。对于仿真的自动化系统,这种自识别是不能模拟的。如果把一个自动组态好 I/O的 S7 300 CPU 程序装载到 S7-PLCSIM 中,系统数据中将不包含任何 I/O 组态。因此,如果使用 S7-PLCSIM 来仿真 S7 300 的程序 ,为了 CPU 能识别所使用的模块必须首先装载硬件组态。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
侠圣

经验值: 2228
发帖数: 734
精华帖: 9
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 2楼 2011-08-17 15:20:11
plcsim不能仿真两个plc之间的以太网通讯是个遗憾啊

另外最近突发奇想,如果plcsim能仿真串行通讯就好了,把串口模块与pc机的串口(没有串口的机器装个虚拟串口软件)互通起来该多好啊
有生之年,狭路相逢,终不能幸免
以下网友喜欢您的帖子:

  
奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨
精华帖精华帖星级2级


只看楼主 只看精华 3楼 2011-08-17 15:33:51
quote:以下是引用一天到晚游泳的猪在2011-08-17 15:20:11的发言:
plcsim不能仿真两个plc之间的以太网通讯是个遗憾啊

另外最近突发奇想,如果plcsim能仿真串行通讯就好了,把串口模块与pc机的串口(没有串口的机器装个虚拟串口软件)互通起来该多好啊

从 S7-PLCSIM V5.4+SP3 开始,可以使用 S7-PLCSIM 在一个 STEP 7 项目中同时仿真多 CPU 并建立 CPU 间的通讯(MPI、PROFIBUS、TCP/IP)。下面的通讯块可用于仿真通讯:
SFB8 "USEND"
SFB9 "URCV"
SFB12 "BSEND"
SFB13 "BRCV"
SFB15 "PUT"
SFB14 "GET"
SFB19 "START"
SFB 20 "STOP"
SFB 22 "STATUS"
SFB 23 "USTATUS"
缺点:通讯过程中,有可能存在时间性问题,因为 S7-PLCSIM 不支持实时。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 4楼 2011-08-17 15:47:42
S7 PLCSIM 支持的系统功能块: (S7-PLCSIM V5.4 + SP4)
S7-PLCSIM下列系统功能块支持

SFB0, SFB1, SFB2, SFB3, SFB4, SFB5, SFB8, SFB9,
SFB12, SFB13, SFB14, SFB15, SFB19,
SFB20, SFB22, SFB23,
SFB31, SFB32, SFB33, SFB34, SFB35, SFB36, SFB37,
SFB52, SFB53, SFB54

S7-PLCSIM 支持的系统功能:
S7-PLCSIM支持下列的SFC:
SFC0, SFC1, SFC2, SFC3, SFC4, SFC5, SFC6, SFC9,
SFC10, SFC11, SFC12, SFC13, SFC14, SFC15, SFC17, SFC18, SFC19,
SFC20, SFC21, SFC22, SFC23, SFC24, SFC26, SFC27, SFC28, SFC29,
SFC30, SFC31, SFC32, SFC33, SFC34, SFC36, SFC37, SFC38, SFC39,
SFC40, SFC41, SFC42, SFC43, SFC44, SFC46, SFC47, SFC49,
SFC50, SFC51, SFC52, SFC54, SFC55, SFC56, SFC57, SFC58, SFC59,
SFC62, SFC64,
SFC78, SFC79,
SFC80, SFC82, SFC83, SFC84, SFC85, SFC87,
SFC90,
SFC105, SFC106, SFC107, SFC108

S7-PLCSIM支持的组织功能块:
更多信息可从S7-PLCSIM在线帮助的 "Organization Blocks (OBs)"下获得。
OB1 (free cycle)
OB10 to OB17 (time-of-day interrupt)
OB20 to OB23 (delay interrupt)
OB30 to OB38 (cyclic interrupt)
OB40 to OB47 (hardware interrupts)
OB55* (status interrupt)
OB56* (interrupt update)
OB57* (manufacturer-specific interrupt)
OB60* (multiprocessor interrupt)
OB61* to OB64* (synchronous cycle interrupt)
OB65* (Technology synchronization interrupt)
OB70 (I/O redundancy error)
OB72 (CPU redundancy error)
OB73 (communication error)
OB80 (time error)
OB81* (power supply failure)
OB82 (diagnostics interrupt)
OB83 (remove/plug alarm)
OB84* (CPU hardware error)
OB85 (priority class error)
OB86 (DP error)
OB87* (communication error)
OB88* (processing abortion)
OB90* (background processing)
OB100 (restart)
OB101 (hot restart)
OB102 (startup OB)
OB121 (programming error)
OB122 (I/O access error)
* 这些组织块能被装在到S7-PLCSIM, 但不能被调用。

当使用循环中断OB时,首先必须知道的是事件并不是实际CPU的。这只是用 S7-PLCSIM来测试基本功能,测试与对时间要求严格的程序需要在真实的CPU中。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
奇侠

经验值: 6625
发帖数: 2261
精华帖: 70
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 5楼 2011-08-17 20:30:31
根据我的使用体会:
1、PLCSIM基本都支持各类CPU的单周期执行程序的功能,组态某些较高档次的CPU,PLCSIM还支持单步执行和预置断点执行程序功能,清晰地展现了程序执行每条指令的过程,给调试复杂程序带来了极大的便利!
2、同时也给用户提供了开发FC、FB的一个很好的测试平台!确实是一款非常方便的调试程序的利器!
3、而且PLCSIM支持MPI、PROFIBUS、Insustrial Ethernet S7的通讯协议很方便与WinCC建立连接,又一次作为调试WinCC的利器为我们使用!
4、通过PLCSIM可以联动测试PLC程序以及WinCC组态和编程,能使两者实现完美对接。可以减少实际工程现场的调试周期!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
奇侠

经验值: 6800
发帖数: 1919
精华帖: 1
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 6楼 2011-08-18 02:41:24
请问5楼的预置断点执行程序功能怎样做?
文建
以下网友喜欢您的帖子:

  
奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 7楼 2011-08-18 07:08:22
Scan Mode:
Single Scan S7-PLCSIM 特有的扫描模式,程序仅执行一个周期,当用户通过Next Scan操作时,S7-PLCSIM 执行下一个扫描周期;Continuous Scan S7-PLCSIM 按照普通模式仿真真实的PLC扫描模式。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
奇侠

经验值: 6800
发帖数: 1919
精华帖: 1
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 8楼 2011-08-18 10:14:52
S7-PLCSIM简介
S7-PLCSIM是S7-PLC的模拟软件,它可以在STEP7环境下,不用连接任何S7系列的PLC(CPU和I/O模板),而是通过仿真的方法运行和测试运行和测试用户的用户的用户的应用程序。S7-PLCSIM提供了简单的界面,可以,可以用编程的方法(如如改变输入的通/断/状态、输入值的变化)来监控和修改不同的参数,也可以使用不同的参数,也可以使用变量表(VAT)进行监控和监控和修改修改变量。
一、 S7-PLCSIM的特性简介
S7-PLCSIM的功能很功能很强,可以使用STEP7的所有所有工具监控调整模拟PLC的性能,通过S7-PLC工作过程与真实的PLCPLC相比,差别很小。
⑴ S7-PLCSIM可模拟的S7控制器的存储器区域如下:
存储器区域 描 述
定时器 T0~T511
位存储器(M) 131072bits(16KB)
I/O存储器 131072bits(16KB)
过程映象 最大:131072bits(16KB) 可预置8192(1024B)
本地数据 最大:64KB 可预置32KB
逻辑块和数据块 2048个个功能块(FB)和和功能(FC),4095个数据块(DB)
系统功能块(SFB) SFB0(CTU,实现加计数功能), SFB1(CTD,实现减计数功能), SFB2( CTUD,实现加/减计数功能), SFB3(TP,生成一个脉冲信号), SFB4(TON,生成一个延时接通信号), SFB5(TOF,生成一个延时断开信号), SFB8(U_SEND,非协调发送数据), SFB9(U_RECV,非协调接收数据), SFB12(B_SEND,发送段数据), SFB13(B_RCV,接收段数据), SFB14(GET,读远程CPU数据), SFB15(PUT,写数据到远程CPU), SFB16(PRINT,发送数据到打印机), SFB19(START,在远程设备上初始化一个暖或冷启动), SFB20(STOP,停止远程设备), SFB21(RESUME, 在远程设备上初始化一个热启动), SFB22(STATUS,查询远程对象的状态), SFB23(USTATUS,接收远程设备的状态), SFB32, SFB33(ALARM,生成需确认的块相关的信息), SFB34(ALARM_8,生成8个信号的不带相关数据的块相关的数据), SFB35(ALARM_8P,生成8个信号的带相关数据的块相关的数据), SFB36(NOTIFY,生成无需确认的块相关的信息), SFB37(AR_SEND,发送存档数据), SFB41(CONT_C,实现连续调节功能), SFB42(CONS_C,实现步进调节功能), SFB43(PULSEGEN,实现脉冲发生功能), SFB44(ANALOG,实现模拟量输出定位), SFB46(DIGITAL, 实现数字量输出定位), SFB47(COUNT,控制计数器), SFB48(FREQUENC,控制频率测量), SFB49(PULSE,控制脉宽调制), SFB52(RDREC,读来自DP从站的数据记录), SFB53(WRREC,向DP从站写数据记录), SFB54(RALRM,接收来自DP从站的中断), SFB60(SEND_PTP,发送数据), SFB61(RCV_PTP,接收数据), SFB62(CONTROL,查询连接的状态), SFB63(SEND_RK,发送数据), SFB64(FETCH_RK,获取数据), SFB65(SERVE_RK,接收和提供数据)
注:SFB12, SFB13, SFB14, SFB15, SFB16, SFB19, SFB20, SFB21, SFB22, SFB23, SFB41, SFB42, SFB43, SFB44, SFB46, SFB47, SFB48, SFB49, SFB60, SFB61, SFB62, SFB63, SFB64, SFB65是NOP(空操作)用户不需要用户不需要修改调用空操作的程序。
系统功能(SFC) SFC0(SET_CLK,设定TOD),SFC1(READ_CLK,读取时间),SFC2(SET_RTM,设定运行时间定时器),SFC3(CTRL_RTM,启/停运行时间定时器),SFC4(READ_RTM,读取运行时间定时器),SFC5(GADR_LGC,查询模板的逻辑起始地址),SFC6(DR_SINFO,读取OB启动信息),SFC7(DP_PRAL,在DP主站上触发硬件中断),SFC9(EN_MSG,使能块相关的、符号相关的以及组状态信息),SFC10(DIS_ MSG,禁止块相关的、符号相关的以及组状态信息),SFC11(DPSYC_FR,同步DP从站组),SFC12(D_ACT_D,取消和激活DP从站组),SFC13(DPNRM_DG,读DP从站诊断数据(从站诊断)),SFC14(DPRD_DAT,读取DP标准从站的连续数据),SFC15(DPWR_DAT,向DP标准从站写连续数据),SFC17(ALARM_SQ,生成可确认的与块相关的信息和用SFC18“ALARM_S”生成永久确认的块相关的信息),SFC18,SFC19(ALARM_SC,查询最后ALARM_SQ/ ALARM_DQ),SFC20(BLKMOV,复制变量),SFC21(FILL,初始化存储区),SFC22,SFC23,SFC24,SFC25,SFC26(UPDAT_PI, 刷新过程映象输入表),SFC27(UPDATE_PO, 刷新过程映象输出表),SFC28(SET_TINT,设置日期时间中断),SFC29(CAN_TINT,取消日期时间中断),SFC30(ACT_TINT,启动日期时间中断),SFC31(QRY_TINT,查询日期时间中断),SFC32(SRT_DINT,启动延时诊断),SFC33(CAN_DINT,取消一个延时诊断),SFC34(QRY_DINT,查询一个延时诊断),SFC35(MP_ALM,触发多处理器中断),SFC36(MSK_FLT,屏蔽同步故障),SFC37(DMSK_FLT,解除同步故障的屏蔽),SFC38(READ_ERR,读取故障寄存器中的信息),SFC39(DIS_IRT,禁止新的中断和异步故障的处理),SFC40(EN_IRT,激活新的中断和异步故障的处理),SFC41(DIS_AIRT,延迟一个高优先权的中断和异步故障的处理),SFC42(激活具有高优先权的中断和异步故障的处理),SFC43(RE_TRIGR,重复触发循环时间监控),SFC44(REPL_VAL,传送一个替代值到累加器1),SFC46(STP,使CPU进入停机状态),SFC47(WAIT,延迟用户程序执行),SFC48(SNC_RTCB,同步子时钟),SFC49(LGC_GADR,查询逻辑地址所属的插槽),SFC50(RD_LGADR,查询一个模板所有的逻辑地址),SFC51(RDSYSST,读取系统状态信息表或部分状态信息表),SFC52(WR_USMSG,在诊断缓冲器中写入一个用户定义的诊断事件),SFC54(RD_DPARM,读取定义的参数),SFC55(WR_PARM,写动态数据),SFC56(WR_DPARM,写缺省数据),SFC57(PARM_MOD,分配模块参数),SFC58(WR_REC,写数据记录),SFC59(RD_REC,读数据记录),SFC60(GD_SND,传送一个全局数据包),SFC61(GD_RCV,接收全局数据包),SFC62,SFC64(TIME_TCK,读取系统时间),SFC65(X_SEND,发送数据到不属于本地S7站的通信对象),SFC66(X_RCV,接收不属于本地S7站的通信对象的数据),SFC67(X_GET,读不属于本地S7站的通信对象的数据),SFC68(X_PUT,写数据到不属于本地S7站的通信对象),SFC69(X_ABORT,中断一个不属于本地S7站已建立的连接),SFC72(I_GET,读本地S7站的通信对象的说据),SFC73(I_PUT,写数据到本地S7站的通信对象),SFC74(I_ABORT,中断一个与本地S7站已建立的连接),SFC79(),SFC80,SFC81(UBLKMOV,不间断的复制变量),SFC82(CREA_DBL,在装载存储器中生成数据块),SFC83(READ_DBL,从装载存储器的数据块中读取数据),SFC84(WRIT_DBL,写数据到装载存储器中的数据块),SFC87(C_DIAG,诊断当前的连接状态),SFC90(),SFC102(RD_DPARA,读取预定义的参数),SFC103(DP_TOPOL,识别DP主站系统的总线拓扑结构),SFC105(READ_SI,读取动态系统资源),SFC106(DEL_SI,删除动态系统资源),SFC107(ALARM_DQ,生成可确认的与永久确认的块相关的信息),SFC108(ALARM_D,生成可确认的与永久确认的块相关的信息),SFC126(SYNC_PI,同步刷新过程映象区输入表),SFC127(SYNC_PO,同步刷新过程映象区输出表),SFC65091,SFC65092,SFC65093,SFC65094,SFC65095,SFC65096,SFC65098,SFC65099,SFC65102,SFC65103
注:SFC26,SFC27,S7-PLCSIM仅支持仅支持输入为0的参数
SFC7,SFC11,SFC12,SFC25,SFC35,SFC36,SFC37,SFC38,SFC48,SFC60,SFC61,SFC62,SFC65,SFC66,SFC67,SFC68,SFC69,SFC72,SFC73,SFC74,SFC81,SFC82,SFC83,SFC84,SFC87,SFC102,SFC103,SFC105,SFC106,SFC107,SFC108,SFC126,SFC127是NOP(空操作)用户不需要用户不需要修改调用空操作的程序。
组织块(OB) OB1(Free Cycle)顺序扫描
OB10~OB17(Time-Of-Day Interrupt)时间-日期中断
OB20~OB23(Time-Delay Interrupt)时间延迟中断
OB30~OB38(Cyclic Interrupt)周期性中断
OB40~OB47(Hardware Interrupt)硬件中断
OB55(Status Interrupt)状态中断
OB56(Update Interrupt)升级中断
OB57 (Manufacturer Interrupt)厂商专用中断
OB61~OB64(Synchronous Cycle Interrupt)异步周期中断
OB70(I/O Redundancy Error)I/O冗余错误
OB72(CPU Redundancy Error)CPU冗余错误
OB73(Communication Error)通信错误
OB80(Time Error)时间错误
OB81(Power Supply Error)电源错误
OB82 (Diagnostic Interrupt)诊断中断
OB83(Insert/Remove Interrupt)插/拔中断
OB84(CPU Hardware Fault)CPU硬件错误
OB85(Priority Class Error)优先级错误
OB86(Rack Failure)机架错误
OB87(Communication Error)通信错误
OB88 (Processing Interrupt)过程错误
OB90(Background OB)背景OB
OB100(Warm Restart)暖启动
OB101(Hot Restart)热启动
OB102(Cold Restart冷启动
OB121(Programming Error)编程错误
OB122(I/O Access Error)I/O存储错误
注:OB55,OB56,OB57,OB61,OB62,OB63,OB64,OB81,OB84,OB87,OB88,OB90是NOP(空操作)用户不需要用户不需要修改调用空操作的程序。
⑵ 在SIMATIC Manager中的按钮 可以自动接通或断开模拟过程。单击模拟按钮 ,可以打开S7-PLCSIM软件及模拟的PLC,当S7-PLCSIM软件运行时,可以自动连接到模拟的CPU上。
⑶ 在模拟的CPU上运行程序,可代替S7-300或S7-400的CPU模板。
⑷ 通过创建变量表,可以存取模拟PLC的输入/输出存储器、累加器和寄存器中的数据,也可以通过符号地址存取存储器数据。
⑸ 可以选择定时器自动运行,或者手动置为/复位。可以对各个定时器进行单独复位或一起复位。
⑹ 同真实的CPU模板一样,在S7-PLCSIM中可以改变CPU的操作方式(STOP、RUN、RUN-P)。另外,在S7-PLCSIM还提供了一个暂停(Pause)功能,允许用户暂停CPU工作,而不影响程序的状态。
⑺ 可以利用模板PLC的中断组织块OB的功能测试程序特性。
⑻ 通过对输入/输出存储器、位存储器、定时器、计数器的操作,可以记录一系列的事件,并且可以回放使之自动进行程序测试。
二、 S7-PLCSIM与真实PLC的差别
模拟PLC提供的下列功能在真实的PLC中是不可行的。
⑴ 暂停功能。暂停命令可以停止模拟CPU的运行,并且可以在暂停的指令处恢复程序的运行。
⑵ 操作方式。尽管在模拟CPU中可以像真实CPU一样进行操作方式选择(RUN、STOP、RUN-P),但是在模拟CPU的STOP操作方式下,输出的状态不会发生变化。
⑶ 立即响应。当操作对象的参数发生变化时,在模拟CPU中的存储器内容立即进行修改,而不必等到输入采样或输出刷新阶段时再进行修改。
⑷ 程序执行周期。在模拟CPU中,可以选择单次扫描(一次操作只执行一个扫描周期后,等待下一次操作),或者选择连续扫描。
⑸ 定时器操作。在模拟CPU中,允许定时器自动运行,允许手动输入定时值。可以对各个定时器进行单独复位或一起复位。
⑹ 可以手动触发中断组织块。在模拟CPU中,可以手动触发中断组织块OB40~OB47、OB70、OB72、OB73、OB80、OB82、OB83、OB85、OB86。
⑺ 过程映象和外部存储器。在模拟CPU中,当对过程输入值做出改变时,S7-PLCSIM立即将其复制到外部存储器中。通过这种方法,在下次扫描开始,当外部输入值被写到过程映象寄存器时,所考虑的变化不会丢失。同样,当对过程输出值做出改变时,会立即写入外部输出存储器。
⑻ 诊断缓冲区。S7-PLCSIM不支持写到诊断缓冲区中所有的错误信息。例如,不能模拟CPU中的电池损坏、EEPROM的错误。然而S7-PLCSIM可以模拟大多数的编程错误和I/O错误。
⑼ 转换操作方式(如从RUN到STOP)不会将I/O转变到一个“安全”状态
⑽ 不支持功能模块(FM)。
⑾ 不支持对等通信(如在同一机架上的两台S7-400之间通信)。
⑿ S7-PLCSIM支持4个累加器的模拟。
⒀ 在I/O中的差别。真实的S7-300系列CPU是自动配置I/O的,一旦模板插入到机架中,CPU可以自动识别。在S7-PLCSIM中,模拟CPU不能复制自动配置特性。如果要从自动配置了I/O的S7-300CPU中,程序下载到S7-PLCSIM,系统数据不包括I/O配置。如果在S7-300的程序中使用了S7-PLCSIM,为了使CPU识别可支持的I/O模板,首先要下载硬件配置。
要下载硬件配置到S7-PLCSIM,首先要创建一个项目,然后将硬件配置复制到这个项目中,再下载硬件配置到S7-PLCSIM中,之后才能下载程序块到S7-PLCSIM。
三、 S7-PLCSIM的使用方法
⑴打开“SIMATIC Manager”。
⑵选择菜单命令“Options”→“Simulate Modules”,以启动S7-PLCSIM(默认的MPI地址为2).
⑶打开要模拟的程序。
⑷选择菜单命令“PLC”→“Download”,将模拟的程序块下载到模拟的PLC中。
⑸根据提示:“Do you want to load the system data?”(是否下载系统数据?)如果不想下载硬件配置到模拟的PLC中,选择“No”;如果想下载硬件配置到模拟的PLC中,选择“Yes”。
⑹在S7-PLCSIM的窗口画面中,工具栏由3部分组成
① 标准工具栏

将插入到画面中的各个观察对象层叠排列。
将插入到画面中的各个观察对象密集(一个挨一个)排列。
② 插入观察对象工具栏

插入输入变量:单击该图标,将输入继电器插入到画面中,默认为IB0,根据模拟的需要,可改写成其他形式,如IB1、IW0、ID5等。还可选择显示的数据格式,如位(bit)、二进制(binary)、十进制(decimal)、十六进制(Hex)、滑动条控制功能(Slider:Dec)32位浮点数又称实数(Real)等。
插入输出变量:单击该图标,将输出继电器插入到画面中,默认为QB0,根据模拟的需要,可改写成其他形式,如QB1、QW0、QD5等。还可选择显示的数据格式,如位(bit)、二进制(binary)、十进制(decimal)、十六进制(Hex)等。
插入位存储器:单击该图标,将位存储器插入到画面中,默认为MB0,根据模拟的需要,可改写成其他形式,如MB1、MW0、MD5等。还可选择显示的数据格式,如位(bit)、二进制(binary)、十进制(decimal)、十六进制(Hex)等。
插入定时器:单击该图标,将定时器插入到画面中,默认为T0,根据模拟的需要,可改写成其他形式,如T3、T5、T8等。还可选择时基单位,如10ms、100ms、1s、10s等。单击“T=0”按钮,可使所模拟的定时器复位。
插入计数器:单击该图标,将计数器插入到画面中,默认为C0,根据模拟的需要,可改写成其他形式,如C3、C5、C8等。还可选择显示的数据格式,如二进制(binary)、十进制(decimal)、S5时间(S5Time)等。
插入通用变量:通用变量包括输入变量、输出变量、位存储器、定时器、计数器等,取决于通过键盘输入的变量类型和参数。
垂直插入通用的位变量:通用的位变量包括输入变量、输出变量、位存储器。位变量一般以字节的形式表示,如IB1、QB3、MB7等,也可以直接输入字节、位形式的位变量,如I0.0、Q3.5、M2.3等。
插入嵌套堆栈:用于监测存储在CPU堆栈中的信息,它可以存储最多7次进入堆栈的信息,对于每一次进入,嵌套堆栈存储状态字的RLO位和OR位的状态。对于开始一个新的逻辑行的指令,如“与(A)”、“与非(AN)”、“或(O)”、“或非(ON)”、“异或(X)”、“异或非(XN)”,则进入一次嵌套堆栈。
MCR堆栈存储主控继电器(MCR)最多8级嵌套,每一级都可显示RLO位的状态。
插入累加器和状态字:用于监测CPU执行用户程序时的信息。
对累加器:可以监测CPU累加器中的内容,对于S7-400,显示4个累加器的内容,对于S7-300仅使用两个累加器。
对状态字:可以监测状态字的各个位。
对地址寄存器:可以监测两个地址寄存器(AR1和AR2)的内容。
插入数据块地址寄存器:用于监测数据块地址寄存器(DB1和DB2)的内容。对于每个逻辑块,可以显示当前的逻辑块号和前一个逻辑块号,以及步进地址计数器(Step Address Counter,SAC)
模拟输入信号的方法:用鼠标单击下图中IB0的第三位(即I0.3)处的单选框,

则在框中出现符号“ ”表示I0.3为ON,若再单击这个位置,则“ ”消失,表示I0.3为OFF。信号的改变会立即引起存储区地址中的内容发生相应的变化,仿真CPU并不等待扫描开始或结束才更新变换了的数据。退出仿真软件时生成的LAY文件及PLC文件,便于下一次仿真这个项目时可以直接使用本次的各种设置。LAY文件用于保存仿真时各视图对象的信息,例如选择的数据格式等;PLC文件用于保存仿真运行时设置的数据和动作等,包括程序、硬件组态、设置的运行模式等。
③ CPU模式工具栏

单次扫描:仿真CPU仅执行程序一个扫描周期,然后等待下一次扫描(也可通过菜单选择Execute→Scan Mode→Singles can)
连续扫描: 仿真CPU将会和真实CPU一样连续地周期性的执行程序。如果用户对定时器或计数器进行仿真,这个功能会非常有用(也可通过菜单选择Execute→Scan Mode→Continuous scans)
暂停
下一次扫描
复位程序中所有的定时器
⑺CPU操作开关观察对象

⑼ 程序测试记录和回放
插入程序测试记录和回放对话框,可以记录和回放一系列的数据变化。

对话框中状态栏的图标意义如下:
创建“新事件文件”按钮。
打开“已存在事件文件”按钮。
“保存”刚才记录的事件文件按钮。
“播放”回放事件文件按钮 。
开始“记录”事件文件按钮。可以捕捉并记录观察对象每一次的ON/OFF变化或对指定的数据值的变化。
“暂停”按钮。
“停止”按钮。
“播放速度选择”按钮。可以选择7个不同的播放速度:0(最快)、0.1(很快)、0.5(快)、1(默认)、2(慢)、5(很慢)、10(最慢)。
记录测试过程:
1、单击 图标。2、单击 按钮开始记录。3、输入信号值使程序执行,程序结束后,单击 按钮。4、单击 保存,在对话框中输入保存文件的名字、路径后单击“SAVE”保存。
回放记录的过程:
1、单击 按钮。2、单击 按钮,然后选择要回放文件的路径和名字后,单击“OPEN”3、单击 按钮,在其下拉菜单中选择播放速度。4、单击 开始回放。

文建
以下网友喜欢您的帖子:

  
侠圣

经验值: 2598
发帖数: 233
精华帖: 1
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 9楼 2011-08-18 11:08:44
借宝地,请高手们指点一下,
1·使用S7-PLCSIM模拟实际PLC,模拟器中的的SF等报警灯显示和实际PLC有什么不同的地方吗?在模拟报警故障时,有哪些是需要注意的呢?
2·像FB125,和冗余,模拟器可以模拟吗?
谢谢!
点击此处查看附件
 
以下网友喜欢您的帖子:

  
游民

经验值: 129
发帖数: 20
精华帖: 0
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 10楼 2011-08-18 15:32:28
quote:以下是引用n次看你的背影在2011-08-17 20:30:31的发言:
根据我的使用体会:
1、PLCSIM基本都支持各类CPU的单周期执行程序的功能,组态某些较高档次的CPU,PLCSIM还支持单步执行和预置断点执行程序功能,清晰地展现了程序执行每条指令的过程,给调试复杂程序带来了极大的便利!
2、同时也给用户提供了开发FC、FB的一个很好的测试平台!确实是一款非常方便的调试程序的利器!
3、而且PLCSIM支持MPI、PROFIBUS、Insustrial Ethernet通讯协议很方便与WinCC建立连接,又一次作为调试WinCC的利器为我们使用!
4、通过PLCSIM可以联动测试PLC程序以及WinCC组态和编程,能使两者实现完美对接。可以减少实际工程现场的调试周期!

PLCSIM如果可以支持WinCC的连接和组态编程,可不可以支持组态王等常规编程组态软件的在线调试呢?
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 11楼 2011-08-18 16:10:31
quote:以下是引用说不明白在2011-08-1815:32:28的发言:
quote:以下是引用n次看你的背影在2011-08-1720:30:31的发言:
根据我的使用体会:
1、PLCSIM基本都支持各类CPU的单周期执行程序的功能,组态某些较高档次的CPU,PLCSIM还支持单步执行和预置断点执行程序功能,清晰地展现了程序执行每条指令的过程,给调试复杂程序带来了极大的便利!
2、同时也给用户提供了开发FC、FB的一个很好的测试平台!确实是一款非常方便的调试程序的利器!
3、而且PLCSIM支持MPI、PROFIBUS、InsustrialEthernet通讯协议很方便与WinCC建立连接,又一次作为调试WinCC的利器为我们使用!
4、通过PLCSIM可以联动测试PLC程序以及WinCC组态和编程,能使两者实现完美对接。可以减少实际工程现场的调试周期!

PLCSIM如果可以支持WinCC的连接和组态编程,可不可以支持组态王等常规编程组态软件的在线调试呢?

我觉得理论上说不可以,一般组态软件组态王等提供的都是针对硬件的驱动,除非组态软件针对PLCSIM另做了相应的函数库才行,与真实PLC通讯时要选通讯协议MPI、DP、TCP/IP等,虽说v5.4提供多种下载方式,但与PLCSIM提供的协议不是一回事。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
奇侠

经验值: 6625
发帖数: 2261
精华帖: 70
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 12楼 2011-08-18 22:08:14
TO:明白兄弟,我没有用过组态王,所以无法正确解答你的问题,我很抱歉!不过www123456兄弟已经给出了参考意见!还是比较喜欢用WinCC,而且S7-300、400支持WinCC是最完美的。以前接触过S5系列的PLC与Unix平台上的HMI软件,那个系统最大的优点就是极其的稳定,从来没有无缘无故死机现象,不过系统开发和维护的要求特别高,还不易上手,虽然是一款欧洲功能非常强大的HMI软件,可使用面不广。现在感觉STEP7+WinCC好用,不过建立在Windows平台上,系统稳定性无法与前者比较!SIEMENS开发了功能强大的PLC模拟仿真软件,让SIEMENS自动化产品更是如虎添翼了!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
至圣

经验值: 44564
发帖数: 11019
精华帖: 105
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 13楼 2011-08-19 08:36:30
西门子STEP7 PLCSIM仿真软件做得好,配套使用winccflex,或wincc运行软件,能够联合离线调试程序,为客户减少很多现场调试程序时间,及发现问题,这是其他厂家不能比拟的。
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 6625
发帖数: 2261
精华帖: 70
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨
精华帖精华帖星级2级


只看楼主 只看精华 14楼 2011-08-19 17:04:14
quote:以下是引用Rossi84在2011-08-18 11:08:44的发言:
借宝地,请高手们指点一下,
1·使用S7-PLCSIM模拟实际PLC,模拟器中的的SF等报警灯显示和实际PLC有什么不同的地方吗?在模拟报警故障时,有哪些是需要注意的呢?
2·像FB125,和冗余,模拟器可以模拟吗?
谢谢!

我个人使用的经验:
1、模拟器中的的SF等报警灯显示和实际PLC相同,报警灯显示含义和实际PLC的不同至今还没用遇到!
2、我认为PLCSIM目前只能模拟单CPU,CPU冗余在PLCSIM里面目前是无法模拟的。
3、以前用PLCSIM测试过PLC扫描周期的实验,发现PLCSIM的扫描周期不受其它OB消耗时间的影响!在PLCSIM的OB1里面写段代码(没用循环、没用跳转、有OB100),执行周期为20MS;统计5万个周期后的时间,然后算出一个周期的平均执行时间。接着将这段代码也复制到OB35里面执行(循环中断时间为20MS),也执行了5万个周期,理论上扫描周期的平均时间应该增大了一倍。可是计算下来两种情况平均扫描周期几乎相等!所以我认为PLCSIM的扫描周期不能代表真实PLC的扫描周期!(仅供参考)
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
侠圣

经验值: 2598
发帖数: 233
精华帖: 1
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 15楼 2011-08-19 18:54:55
N侠的回答,受用!在其他的帖子里经常看到N侠的身影呢,呵呵,回答很专业、负责,非常感谢!
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8612
发帖数: 2089
精华帖: 81
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 16楼 2011-08-19 19:53:47
PLCSIM的适用场合:
对于时序逻辑要求不严格的程序逻辑,可以使用S7-PLCSIM仿真,对于时序逻辑要求严格的程序逻辑,使用S7-PLCSIM仿真就不可靠了。
因为PLCSIM的本质是一个WINDOWS上运行的应用程序,所以其执行状态与计算机的性能及系统资源的使用有密切的联系,其仿真程序的扫描周期也实时受计算机负荷的影响,比如10ms的定时器或几毫秒的中断,S7-PLCSIM就做不到了。
管理员注:本帖已被纳入此次探讨发帖整理,请点此详阅
s
以下网友喜欢您的帖子:

  
奇侠

经验值: 6835
发帖数: 5347
精华帖: 25
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 17楼 2011-08-20 13:37:14
个人认为 通讯的模拟其实用处不大 尤其是以太网和Profibus

怎么论坛改成这样了??
以下网友喜欢您的帖子:

  
奇侠

经验值: 7008
发帖数: 2244
精华帖: 17
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 18楼 2011-08-20 16:03:17
我自己使用PLCSIM一般在检测程序的控制逻辑、执行结果;和WinCC或WinCCFlexible联机模拟也是一般的控制操作(也可以在PLCSIM中给定操作的那种);
PLC之间的通讯或者和从站之间的通讯一般都不用PLCSIM模拟了,因为好多是离开硬件无法操作或者没有数据。
爱好广泛,微信公众号如头像二维码(钻井平台电控);美篇号29484696。
以下网友喜欢您的帖子:

  
奇侠

经验值: 7008
发帖数: 2244
精华帖: 17
回复:应用探讨——STEP 7 PLCSIM功能和使用技巧探讨


只看楼主 只看精华 19楼 2011-08-20 16:09:51
PLCSIM和真实的PLC的区别、应用等楼主给的资料都说的很清楚,刚才看到张工说事,觉得和PLCSIM很贴近,有必要分享一下:

L 1
PUSH
L 2
PUSH
L 3
PUSH
L 4
T MD 0
POP
T MD 0
POP
T MD 0
POP
T MD 0

上面这段程序可以实现一个小的LIFO堆栈(当然大的堆栈可以用指针,不会这么编),这段程序在S7-400上运行是没有问题的,但如果在S7-300上运行,虽然语法上是没有错误的,但不会得到一个1,2,3,4 的LIFO堆栈。原因:S7-400有4个ACCU,而S7-300只有2个ACCU。搞过单片机的朋友应当清楚,对于硬件底层,多两个ACCU意味着什么。多说一句,PLCSIM 也有4个ACCU,不要把PLCSIM 当成真的PLC,和很多朋友都说过了,就是听的人少,唉。”
这个例子既说了300和400的区别,也提了PLCSIM和真实PLC的区别,如果用PLCSIM验证程序,用4个ACCU,然后现场使用300肯定是会出现问题的。
原帖地址:http://www.ad.siemens.com.cn/service/engineerStory/EngineerContent.aspx?id=59
爱好广泛,微信公众号如头像二维码(钻井平台电控);美篇号29484696。
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
扫描打开手机版
您收到0封站内信:
×
×