西门子软件中国一级代理商
西门子S7-SMART200、S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
我们还提供西门子G120、G120C V20 变频器; S120 V90伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务。
西门子中国授权代理商——浔之漫智控技术(上海)有限公司,本公司坐落于松江工业区西部科技园,西边和全球**芯片制造商台积电毗邻,
东边是松江大学城,向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
公司国际化工业自动化科技产品供应商,是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。
目前,浔之漫智控技术(上海)有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110G120变频器、直流调速器、电线电缆、
驱动伺服产品、数控设备SIEMENS低压配电与控制产品及软起动器等
S7-400 CP中的FC6/FC60序列(仅用于TCP连接)在TCP连接上,RECV参数的ANY指针中指定的长度是决定性因素。一旦将与指定长度对应的数据量写入到接收缓冲区,立用条件代码NDR=1完成FC6/F C60作业。序列实例显示了这样一种情况:对于FC60,将ANY指针中的长度设为400字节。S7-400CP中的FC63序列(对于ISO传输、ISO-on-TCP、UDP连接)当调用FC时,用户程序准备用于已接收数据的缓冲区,并命令CP在此处输入所有数据,直到传送结束为止;即,当到达ANY指针中指定的长度时。 只要数据记录已经完整地、一致地输入到接收缓冲器中,就将在后续的某个FC调用中使用参数NDR=1对其进行表示。 所接收数据的*大长度是1452字节。 接收缓冲区的大小必须始终设为该数值。输出参数NDR、ERROR以及STATUS中的状态代码将在每个块调用中进行更新,并可对 其进行计算。S7-400CP中的FC63序列(仅用于TCP连接) 当调用FC时,用户程序准备用于接收数据的缓冲区,并命令CP在此处输入当前可用的数 据。直到在接收缓冲区中完全输入数据之后,才发送消息“作业处于活动状态”(8181H)。通过每次重新调用FC,在接收缓冲区中输入当前可用的数据。当数据记录已经完整地、一致地输入到接收缓冲区时,将在后续的某个FC调用中使用参 数NDR=1对其进行指示。所接收数据的*大长度是1452字节。 接收缓冲区的大小必须始终设为该数值。输出参数NDR、ERROR以及STATUS中的状态代码将在每个块调用中进行更新,并可对 其进行计算 指定地址和长度数据区的地址指向下列两个位置之一: • 存储器位区 • 数据块区 关于长度的注意事项: 如果通过RECV参数将长度也限制为212字节,则当传送的数据记录不超过212字节时,性能将 得到改善。 关于FC63 AG_SRECV的注意事项: 对于FC63AG_SRECV,始终将RECV设为*大接收缓冲 区长度,即1452字节。 否则,在某些情况下会出现下列错误:NDR=0;ERROR=1;STATUS=8185H NDR OUTPUT BOOL 0: - 1:新数据该参数指示是否接受了新数据。 对于与ERROR和STATUS参数一起使用时的含 义,请参见AG_RECV、AG_LRECV 和AG_SRECV 的条件代码 (页 43)。 ERROR OUTPUT BOOL 0: - 1:错误 错误代码对于与NDR和STATUS参数一起使用时的含义 ,请参见AG_RECV、AG_LRECV 和 AG_SRECV 的条件代码 (页43)。说明 STATUS OUTPUT WORD 状态代码 对于与NDR和STATUS参数一起使用时的含义,请参见AG_RECV、AG_LRECV 和 AG_SRECV 的条件代码 (页 43)。 LEN OUTPUT INT在ISO传输和ISO– on–TCP上: 1, 2...8192 在UDP上: 1, 2...2048指定从以太网CP接受的字节数,将其输入到数 据区中。 请注意块类型: • 对于S7-300 FCAG_RECV的当前版本允许*多传送8192字 节(对于UDP为2048字节)。 • 对于S7-400 通过FCAG_RECV,将数据区限制为*多240字节。 通过FC AG_SRECV,将数据区限制为*多1452字节 。 2.1.3.4AG_RECV、AG_LRECV 和 AG_SRECV 的条件代码 条件代码下表显示了由NDR、ERROR和STATUS参数构成的代码,其中的参数必须由用户程序进 行计算。 说明 对于 STATUS 中以8FxxH 编码的条目,请参见引用的系统程序块说明中的输出参数 RET_VAL 的相关信息。 可在 STEP 7中查询使用了哪些系统程序块以及哪些系统程序块与错误评估相关。 AG_RECV /AG_LRECV / AG_SRECV条件代码 NDR ERROR STATUS 含义 1 0 0000H 已接受新数据。 0 08180H 尚未提供数据(不带AG_SRECV)。 0 0 8181H 激活作业。 0 1 8183H • 组态丢失; •以太网CP上尚未启动ISO传输服务; • 不建立连接。 0 1 8184H • 为RECV参数指定非法类型; • 系统错误。 0 18185H 目标缓冲区(RECV)太短。 0 1 8186H ID参数无效。 ID != 1、2....16 (S7-300)。 ID!= 1、2....64 (S7-400)。 0 1 8304H 不建立连接。 在等待至少 100 毫秒之后,才能尝试接收作业。0 1 8F23H 源区域无效,例如: 该区在DB中不存在。 0 1 8F25H 写入参数时发生范围错误。 0 1 8F29H写入参数时发生对准错误 0 1 8F30H 该参数位于具有写保护的第一个当前数据块中。 0 1 8F31H该参数位于具有写保护的第二个当前数据块中。 0 1 8F32H 该参数包含了一个太高的 DB 号。 0 1 8F33H DB编号错误。 0 1 8F3AH 没有装载目标区域 (DB)。 0 1 8F43H 将参数写入 I/O 区域超时。 0 1 8F45H在访问路径中要写入的参数地址被禁用。 0 1 8F7FH 内部错误,例如,非法ANY引用。含义 0 1 8090H •具有该模块起始地址的模块不存在或CPU处于STOP模式; • 所使用的FC与正在使用的系统系列不匹配(请牢记对S7300和S7-400使用不同的FC)。 0 1 8091H 模块起始地址不是双字边界。 0 1 8092H 在 ANY 引用中,指定了一个非BYTE 的类型。 (仅 S7-400) 0 1 80A0H 从模块中读取否定确认。 0 1 80A4H 没有建立 CPU 与 CP之间的通信总线连接。 0 1 80B0H 该模块不能识别数据记录。 0 1 80B1H 可能的原因: • 目标区域无效。 •目标区域太短。 • 用于接收数据的目标区域不够大。 解决方法: 运行另一个具有*大接收缓冲区的接收调用。无论采用何种连接类型(单播/组播/广播)和设备系列 (S7-300/S7- 400),均可采用此方法。 0 1 80B2H 没有建立CPU 与 CP 之间的通信总线连接。 0 1 80C0H 无法读取数据记录。 0 1 80C1H 当前正在处理所指定的数据记录。 01 80C2H 未决的作业太多。 0 1 80C3H CPU 资源(存储器)被占用。 0 1 80C4H 通信错误临时发生,且在用户程序中重复执行通常可以纠正该故障。 0 1 80D2H 模块起始地址错误 通过FETCH/WRITE 进行访问协调的程序块 2.2.1 程序块及其用途概述 概述 下列程序块均可用于 FETCH/WRITE功能,以便协调访问: 程序块 可用于: 含义 S7-300 S7-400 AG_LOCK (FC7) x x通过FETCH/WRITE锁定外部数 据访问。 AG_UNLOCK (FC8) x x 通过FETCH/WRITE释放外部数 据访问。组态时须当心 如果使用程序块 AG_LOCK 和 AG_UNLOCK,则需要在组态中为 S7400 站中的 CP 指定下列信息: ●在?属性 > 地址?下 必须选择揕OCK/UNLOCK的地址设置?选项(若提供该选项)。 工作原理通过这些程序块,可以协调对系统内存区域的访问,从而避免了创建和传送不一致的数据 。 通过S7CPU中的用户程序进行控制,在必要时,可以调用AG_LOCK禁止外部FETCH/WRITE访 问。经过一定时间后或在完成本地写/读访问后,可使用AG_UNLOCK作业来重新启用外部访 问。它的另一个优点是该访问锁定只针对在调用中指定的FETCH/WRITE连接。例如,如果组态一个以上FETCH/WRITE连接,那么这些连接可用于特定的专用系统区, 并可实现选择性访问协调。下列图表说明了在用户程序中使用AG_LOCK和AG_UNLOCK进行控制的、存储器访问协调的常用时间序列。锁定作业必须在用户程序中使用返回参数LOCKED中的代码进行监视。只要指示LOCKED=0,则必须认定仍然正在进行FETCH/WRITE访问。如果指示LOCKED=1,那么,这表明开启了锁定;数据现在即可通过用户程序进行修改 。 状态代码将在每次块调用时进行含义和调用 -AG_LOCK 块的含义 使用AG_LOCK块,禁止在通过参数ID选定的连接上使用FETCH或WRITE进行数据交换 。LOCKED输出指示锁定是否成功。 如果锁定失败,那么必须在后面的CPU周期中重新触发该作业。STATUS输出指示了该连接的CP状态。 调用 FBD表达式调用接口 STL表达式中的实例 STL 解释 call fc 7 ( ID:= DB 100.DBW 2, LADDR := W#16#0100, LOCKED := DB 100.DBX 0.6,STATUS := DB 100.DBW 4 ); //块调用 //符合组态的连接ID //=HW Config中的LADDR 256(十进制) //访问锁定的状态代码 /下面的表格解释了AG_LOCK功能的所有形式参数: 参数 声明 数据类 型 取值范围 说明 IDINPUT INT 用于S7- 300的1、2...16 用于S7- 400的1、2...64 在参数ID中指定连接的连接数。LADDR INPUT WORD 模块起始地址 如果通过 STEP 7 组态 CP,则会显示模块起始地址。 在此指定该地址。LOCKED OUTPUT BOOL 0: 未(尚未)锁定 1: 已锁定 显示在指定的FETCH/WRITE连接上请求的访问锁定状态。 STATUS OUTPUT WORD 状态代码 对于其含义,请参见 AG_LOCK的条件代码 (页 49) 2.2.2.3AG_LOCK的条件代码 条件代码 下面的表格显示了必须由用户程序进行计算的STATUS代码。 表格 2- 2 AG_LOCK条件代码STATUS 含义 7000H CP 没在处理作业 7001H FETCH 已激活 7002H WRITE 已激活 8183H没有为该连接组态 FETCH/WRITE(仅对 S7-400) 8186H ID 号不在允许范围内(例如,对于 S7-400工业以太网 CP 的范围是 1...64)