工控编程吧

标题: 为什么在 S7-1500 中 HMI 系统或 web server 的数据有时会覆盖 [打印本页]

作者: baikhgmv    时间: 2016-11-2 09:40
标题: 为什么在 S7-1500 中 HMI 系统或 web server 的数据有时会覆盖
为什么在 S7-1500 中 HMI 系统或 web server 的数据有时会覆盖在实际使用时,PLC及HMI系统是互相平行完全独立运行的两个进程。当两个系统同时尝试向同一个变量进行写入操作时,该数据可能在系统侧被覆盖掉。



描述
S7-1500与S7-300不同,数据通讯不是根据操作系统进行循环处理,而是在程序周期中固定的时间间隔中进行。具体请参考下例中的描述.
  • 在S7-1500中,其他进程(Web服务器、HMI通讯或技术功能)到PLC间的访问都是同时进行的,且访问相同变量地址。

    例如
    DB变量在功能块中作为输出参数。则HMI系统在FC进程中,无法向该DB块写入数据。写入的数据会丢失。
  • (, 下载次数: 1)
  • 当优化数据与非优化数据进行交换时,使用输入输出参数会出现如下问题。

    例如
    当数据块在优化访问模式时,DB变量作为输入输出参数,对其进行访问。
    在此情况下,数据是用复制模式传送的。运算数据复制后,即使数据未改变,也会在数据块结尾处再次写入回该数据。因此,在数据块过程中HMI系统写入的数据会丢失。

    注意
    根据传送区域和参数数据类型的不同,STEP 7(TIA Portal)传送数据同时支持支持指针模式和复制模式。

    解决方法
    根据系统特性的描述,推荐使用以下解决方法:

    • 在平行进程中需要避免同时向同一变量写入数据。
    • 创建一个全局数据块包括两个完全独立的数据结构(使用PLC数据类型),分别用于HMI和PLC访问。
    • 其中一个数据结构仅用于进程一的写入,如HMI。
    • 另一个数据结构仅用于进程二的写入,如PLC。
    • 用户可以同时使用两个进程向两个数据机构中读取数据。
    • 这样可以避免平行进程中数据互相覆盖。
    • 访问数据块时,要避免优化和非优化区域的交换。S7-1200/S7-1500中有“优化块访问”的设置,但S7-300/S7-400中不支持。当使用S7-1500时,推荐将块访问设置为“优化”模式。用户可以在“属性”选项卡中修改块访问模式。
    • (, 下载次数: 1)












欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4