• 西门子 PLC SFC14/15 80B1故障


    SFC14/15

    S7-300/400/1500 PLC中,SFC14/15用于将分站的IO数据批量读取到DB块中。MOVE(L T)指令只能最多传送4byte。因此,使用SFC14/15能够简化程序段。

    LADDR 硬件地址,16进制
    RET_VAL 返回值,0表示无故障,其它值表示故障
    RECORD 数据块指针,例如( P#DB13.DBX0.0 byte 100),注意byte和数据长度之间有空格。

    转载请保留 http://www.cnblogs.com/lion-zheng/

    80B1故障

    在使用中,碰到了80B1故障,帮助文件的描述为

    The length of the specified destination area is not identical to the user data
    length configured with STEP 7.

    即,DB块中的数据长度,和分站的数据长度不一致。

    网络结构

    我使用的网络是315-2PN/DP和SIMOTION D435-2PN/DP进行的iDevice通讯。Simotion作为iDevice从站,分配了I/O各100个byte。PLC作为主站,以下是PLC侧的硬件配置。Simotion的地址为300(16#12C)

    故障现象

    100个byte的通讯量比较大,我实际需要的大约为80个,因此我定义了DB3,包含80个byte。在OB1中调用SFC14之后,出现了801B报警。

    解决方法

    DB块中的数据长度,需要和硬件组态中定义的分站数据长度一致。将DB3改为100个byte。故障消失。


    解决的方法很简单,就是DB块的数据长度,要和分站长度一致。但解决这个问题的过程中也被一些因素误导,花了一些时间。例如,分站的数据长度,对于iDevice,并没有32byte/64byte这样的限制。另外,SFC14/15在小于4byte时,并不检查数据长度。

    转载请保留 http://www.cnblogs.com/lion-zheng/
    Zheng lei 2017 - 0522

  • 相关阅读:
    LostRoutes项目日志——玩家飞机精灵Fighter解析
    quartz Cron表达式一分钟教程
    vue-cli入门
    SQL中merge into用法
    SQLSERVER查询那个表里有数据
    C#实现复杂XML的序列化与反序列化
    MVC和WebApi 使用get和post 传递参数。
    项目管理软件推荐
    JS跨域请求
    Android动画效果translate、scale、alpha、rotate详解
  • 原文地址:https://www.cnblogs.com/lion-zheng/p/6889928.html
Copyright © 2020-2023  润新知