西门子全国电源经销商
工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务。西门子中国有限公司授权合作伙伴——浔之漫智控技术(上海)有限公司,作为西门子中国有限公司授权合作伙伴,浔之漫智控技术(上海)有限公司代理经销西门子产品供应全国,西门子工控设备包括S7-200SMART、 S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP 等各类工业自动化产品。公司国际化工业自动化科技产品供应商,是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。西部科技园,东边是松江大学城,西边和全球**芯片制造商台积电毗邻,作为西门子授权代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理商,西门子PLC模块代理商,
,建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品我们
向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。
常规信息
简介
此处给出的包含在 CP440_PtP_Com 项目中的项目实例描述操作 CP 440 通信处理器所
需使用的标准功能。
可以使用*少的硬件设备执行本实例。 还使用了 STEP 7 功能监视/修改变量(例如修改传送
的数据)。
目的
项目实例的任务如下:
• 旨在显示*重要的功能,
• 能查看所连接的硬件的正常功能(实例简单易行,以便模仿)
• 可轻松进行扩展,以适合您的用途。
项目实例由下列五个单独的组件组成:
• CP440 SEND RECV: 与 ASCII/3964(R) 的 SEND 和 RECV 互连
• CP440 1CYC: 与 ASCII/3964(R) 的 SEND 和 RECV 互连,循环作业处理
• CP440 ASCII BCC: 带有块校验格式的 ASCII 的互连
• CP440 MASTER: 用于 ASCII 协议的互连的主站
• CP440 SLAVE: 采用 ASCII 协议互连的从站
CPU 启动时将为 CP 440 分配参数(系统服务)要试验该程序实例,可使用以下设备:
• 一台 S7-400 PLC(安装机架、电源、CPU)
• 一个带有通信伙伴(例如第二个 CP)的 CP 440,或者您可以插入一个“短路连接器”,
也就是说将发送线路跨接到接收线路
• 一台编程设备(例如 PG 740)
9.3 设置
通过 STEP 7 完成 CPU 中的设置
使用 STEP 7 如下所述组态您的控制器。
• 插槽 1:电源
• 插槽 2:CPU
• 插槽 4: CP 440,起始地址 512
• 插槽 5: CP 440,起始地址 528
在“CP440 MASTER”和“CP440 SLAVE”实例中,插槽 5 上没有 CP 440。
CP 440 上的设置
不能在 CP 440 上进行任何硬件设置。
使用 STEP 7 组态所有相关的数据,包括使用 CP 440: 点对点连接,参数分配界面设置 CP
440 的参数,并将这些参数上传到 CPU。
使用下列配置,无需对用户程序进行任何更改,便可以运行“CP440 SEND RECV”或“CP440
1CYC”程序实例:
• 3964(R) 程序
• 使用“字符延迟时间结束时”结束标准的 ASCII 驱动程序
• 使用“接收到固定消息帧长度时”结束标准的 ASCII 驱动程序。
对于使用“接收到结束字符时”结束标准的 ASCII 驱动程序,下表包含一份程序实例中所用块的清单。
表格 9-1 CP 440 SEND RECV
块 符号 描述
OB 1 CYCLE 循环程序处理
OB 100 RESTART 冷重启动处理
DB 21 SEND IDB 用于 SEND_440 FB 的背景数据块
DB 22 RECV IDB 用于 RECV_440 FB 的背景数据块
DB 40 SEND WORK DB 用于标准 FB 10 的工作 DB
DB 41 RECV WORK DB 用于标准 FB 9 的工作 DB
DB 42 SEND SRC DB 发送数据块
DB 43 RECV DST DB 接收数据块
FB 9 RECV_440 用于数据的接收标准 FB
FB 10 SEND_440 用于数据的发送标准 FB
FC 21 SEND 发送数据
FC 22 RECEIVE 接收数据
表格 9-2 CP 440 1 CYC
块 符号 描述
OB 1 CYCLE 循环程序处理
OB 100 RESTART 冷重启动处理
DB 21 SEND IDB 用于 SEND_440 FB 的背景数据块
DB 22 RECV IDB 用于 RECV_440 FB 的背景数据块
DB 40 SEND WORK DB 用于标准 FB 10 的工作 DB
DB 41 RECV WORK DB 用于标准 FB 9 的工作 DB
DB 42 SEND SRC DB 发送数据块
DB 43 RECV DST DB 接收数据块
FB 9 RECV_440 用于数据的接收标准 FBCP 440 的项目实例和CP 440:点对点通信,参数分配界面随功能块和该手册提供在一张 CD
上。
程序实例随参数分配界面一起安装,“安装编程界面 (页 56)”一章阐述了这些内容。 安装之
后,实例保存在下列项目中:
CP440_PtP_Com
通过在 STEP 7 SIMATIC Manager 中选择文件 > 打开 > 项目 (File > Open > Project) 打开该
项目。
可使用项目实例编译后的形式和源文件。 还包括一份实例中所用所有符号的清单。
如果没有另一个 CP 440 可用作通信伙伴,则必须通过在 HW ConfiH 中选择编辑 > 删除 (Edit
> Delete) 删除 CP 440。在实例“CP440 SEND RECV”、“CP440 1CYC”和“CP440 ASCII BCC”中,
也必须注释在 OB1 中的调用 FC 22(用于接收的 FC)语句。
下载至 CPU
实例的硬件设置已完成且编程设备已连接。
CPU 执行一次总复位之后(工作模式 STOP),将整个实例传送到用户存储器。 使用工
作模式开关从 STOP 切换到 RUN。
故障
如果启动时出现错误,则终止循环处理的块调用,并输出一条错误消息。
如果没有错误消息,则复位模块的 ERROR 参数输出。 随后将一个更加**的错误描述保存
在块的 STATUS 参数中。 如果 STATUS 中包含错误消息 16#1E0E 或 16#1E0F 中的一个,则
准确的错误描述保存在背景数据块的 SFCERR 变量中。
激活、启动程序和循环程序
9.6.1 “CP440 SEND RECV”程序实例
激活、启动程序
启动程序位于 OB 100 中。
启动过程中将控制位和计数器复位。
循环程序
在组织块 OB 1 中定义循环程序。
在本例中,功能块 FB 9 “RECV_440”和 FB 10 “SEND_440”与功能 FC 21 和 FC 22 以及作为背
景数据块的数据块 DB 21 和 DB 22 和 作为发送或接收 DB 的 DB 42 和 DB 43 一起工作。
在本例中,部分通过常数,部分通过符号方式寻址的实际操作数为功能块分配参数。
数据传输
数据传输发生的起始点为从插槽 4 上的 CP 440 的到插槽 5 上的 CP 440。如果您使用其它通
信伙伴,则不调用 FC 22 (RECEIVE)。
对 FC 21 (SEND) 的说明
“生成跳沿 SEND_REQ”(Generate edge SEND_REQ) 程序部分:
*初当 SEND_REQ=0 时,SEND_440 运行一次,SEND_REQ 被设置为 1。当在
SEND_REQ 控制参数上检测到信号状态从“0”变为“1”时,SEND_440 作业启动。
当 SEND_DONE=1 或 SEND_ERROR=1 时,SEND_REQ 复位为 0。
“SEND_DONE=1”程序部分:
如果传输成功,在 SEND_440 的参数输出上 SEND_DONE 被置为“1”。
为了区分连续进行的传输,源块 DB 42 的数据字 0 中包含有一个发送计数器
(SEND_COUNTER_OK)。
“SEND_ERROR=1”程序部分:
如果 SEND_ERROR=1 时 SEND_440 运行了一次,则数据字 2 中的 SEND_COUNTER_ERR 错
误计数器递增 1。对 SEND_STATUS 进行复制,因为它将在下次运行中被 0 覆盖,这意味着
将不能够读取它的值。接收数据使能”(Enable Receive Data) 程序部分:
必须将块 RECV_440 的接收使能端 (RECV_EN_R) 设置为“1”,才能接收数据。
“RECV_NDR=1”程序部分:
当 RECV_NDR 置位时,新数据已接收到,RECV_COUNTER_O 接收计数器的值递增。
“RECV_ERROR=1”程序部分:
如果执行不成功(也就是说,RECV_440 的参数输出端置位了错误位),则
RECV_COUNTER_ERR 错误计数器的值递增。 复制了 RECV_STATUS,因为在下次运行时它将
被 0 覆盖,将不再能够读出它的值。
在变量表中,可以观察所有相关的值,以用于测试。
9.6.2 “CP440 1 CYC”程序实例
本实例的建立与实例“CP440 SEND RECV”完全相同。 已经将 FC 21 修改为允许循环处
理一项 SEND 作业。
对 FC 21 (SEND) 的说明
循环处理一项 SEND 作业的过程如下:
• 每次块调用时,通过设置 SEND_REQ=0 使 SEND_440 运行一次。如果 SEND_DONE 和
SEND_ERRO 均未出现,则块终止。
• 如果出现 SEND_DONE,通过设置 SEND_REQ=1 使 SEND_440 再运行一次。
• 如果出现 SEND_ERROR,通过设置 SEND_REQ=0 设置 SEND_REQ=1 使 SEND_440 再
运行一次。
为了确保在*开始的第一次能够通过设置 SEND_REQ=1 使 SEND_440 运行一次,在“检查
是否出现 SEND_DONE 或 SEND_ERROR 或并非第一个周期”(Check if SEND_DONE or
SEND_ERROR or not first Cycle) 程序部分还对 SEND_STARTUP_ENDED 位进行检测。 在第一
次运行中,该位的值为 0,固定为 1。