西门子断路器一级经销代理商
其产品范围包括西门子S7-SMART200、S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
与此同时,我们还提供西门子G120、G120C V20 变频器; S120 V90伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务。
西门子中国授权代理商——湖南西控自动化设备有限公司,本公司坐落于湖南省中国(湖南)自由贸易试验区长沙片区开元东路 1306 号开
阳智能制造产业园一期 4 栋 30市内外连接,交通十分便利。
公司国际化工业自动化科技产品供应商,是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。
目前,湖南西控自动化设备有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110G120变频器、直流调速器、电线电缆、
驱动伺服产品、数控设备SIEMENS低压配电与控制产品及软起动器等
描述 Error OUT BOOL 当连接操作完成但发生错误时,指令置位 Error 输出。有关详细信息,请参见“开放式用户通信库指令错误代码” (页 605)。 Status OUT BYTE 如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输 出,Status 为零(无错误)。SO_ConNECT 指令ISO_ConNECT 指令使用 ISO-on-TCP 协议创建到另一设备的连接。除了 TCP 协议外,该协议 还使用RFC1006,以便更好地描绘消息。ISO-on-TCP 的优点是,对于发送的每条消息,接 收到的消息都会不同。ISO-on-TCP协议从不将接收到的多条消息组合成一条消息,而 TCP 协 议会发生这种情况。ISO-on-TCP 协议使用TSAP(传输服务访问点)路由设备中的消息,而 不是端口的消息。 LAD/FBD STL 描述 ISO_ConNECT Req,Active, ConnID, IPaddr1, IPaddr2, IPaddr3, IPaddr4, RemTsap,LocTsap, Done, Busy, Error, Status ISO_ConNECT 用于创建从 CPU 到通信伙伴的ISO-on-TCP 通 信连接。 连接操作是异步的,可能需要几次扫描才能完成。当连接操作待决时,指令置位 Busy 输出。 当CPU 完成操作时,指令置位 Done 或 Error 输出。如果发生错误,则 Status 输出会显示错 误代码。指令处于繁忙状态时不得更改 ISO_ConNECT 的输入参数。CPU 需要凭借这一点了解这是启 动连接过程的调用的延续。 您将连接ID (ConnID) 输入分配给连接,然后当发送、接收或断开连接时使用此 ConnID 引 用该连接。 Active输入位确定这是主动连接(Active 设置为 TRUE)还是被动连接(Active 设置为 FALSE)。如果这是主动连接(客户端),则 S7-200 SMART CPU 尝试联系和创建到指定 IP 地址和远程 TSAP (RemTsap)的连接。CPU 打开本地 TSAP (LocTsap) 以从远程设备接收消息。 当 Active 输入设置为 FALSE时,S7-200 SMART CPU 会创建被动(服务器)连接。在这种情 况下,CPU 打开请求的本地 TSAP (LocTsap)并接受来自远程设备的连接请求。如果要接受来 自任何远程 IP 地址的连接请求,应将 IP 地址设为 0.0.0.0。如果 IP地址不为零,则 CPU 只 接受来自指定 IP 地址的连接请求。对于被动连接,CPU 会忽略远程 TSAP 字符串(RemTsap), RemTsap 可以设置为空字符串(例如,“”)您可以随时调用 ISO_CONNECT指令以确定连接的当前状态。将 Req 输入设置为 FALSE 并提 供有效的连接 ID (ConnID),ISO_CONNECT返回以下内容: • Busy,如果连接过程仍在进行中。 • Done,如果连接处于激活状态并准备发送或接收。 •Error,如果连接不可用。Status 显示其中一种错误代码,用于指示存在的问题。 请注意,主动连接可能*多需要 30秒的时间来确定远程设备是否允许连接。被动连接显示 Busy 状态,直到远程设备尝试连接到 CPU。 请注意,连接关闭后 S7-200SMART 不会自动尝试重新连接到设备。如果远程设备断开设备 连接,您的程序必须执行另一个 ISO_CONNECT指令以重新连接设备。主动连接和被动连接 皆如此。 表格 10-19 ISO_ConNECT 指令的参数 参数 声明 数据类型 描述EN IN BOOL 使能输入 Req IN BOOL 如果 Req = TRUE,CPU 启动连接操作。如果 Req =FALSE,则输出显示连接的当前状态。 Active IN BOOL • TRUE = 主动连接 • FALSE = 被动连接ConnID IN WORD CPU 使用连接 ID (ConnID) 为其它指令标识该 连接。可能的 ConnID 范围为 0 到65534。 IPaddr1 ... IPaddr4 IN BYTE 这些是 IP 地址的四个八位字节。IPaddr1 是 IP地址的*高有效字节,IPaddr4 是 IP 地址 的*低有效字节。 RemTsap IN DWORD RemPort 是远程TSAP 字符串。程序使用指针 来传递字符串。(更多信息,请参见本表后 面的示例。) LocTsap IN DWORD LocPort是本地 TSAP 字符串。程序使用指针 来传递字符串。(更多信息,请参见本表后 面的示例。) Done OUT BOOL当连接操作完成且没有错误时,指令置位 Done 输出。 Busy OUT BOOL 当连接操作正在进行时 描述 ErrorOUT BOOL 当连接操作完成但发生错误时,指令置位 Error 输出。有关详细信息,请参见“开放式 用户通信库指令错误代码” (页605)。 Status OUT BYTE 如果指令置位 Error 输出,Status 输出会显示 错误代码。如果指令置位 Busy或 Done 输 出,Status 为零(无错误)。UDP_ConNECT 指令 UDP_ConNECT 指令使用 UDP协议创建被动连接。UDP 是一种无连接协议,因此不会在此 CPU 和远程设备之间创建实际连接。UDP 连接打开所选本地端口以与 UDP协议配合使用。 LAD/FBD STL 描述 UDP_ConNECT Req, ConnID, LocPort, Done,Busy, Error, Status UDP_ConNECT 使用 UDP 协议创建被动连接以打开所选本地 端口。UDP_ConNECT 指令只需要连接 ID 和本地端口号即可创建连接。一个 UDP 连接可以将消息 发送到任意数量的其它设备,因为IP 地址和远程端口会随每个 UDP_SEND 指令一起提供。仅 当需要多个本地端口时,才需要多个 UDP连接。不能将同一本地端口号用于多个 UDP 连接。 所有本地端口号必须唯一。连接操作是异步的,可能需要几次扫描才能完成。没有与远程设备建立主动连接,也没有等 待另一台设备连接到该CPU。当连接操作待决时,Busy 输出置位。当连接操作完成时,程 序置位 Done输出。仅当输入参数发生问题或没有可用的被动连接时,程序才置位 Error 输出。 如果程序将 Error 位置位,Status输出字节将包含错误代码。 指令处于繁忙状态时,不得更改 UDP_ConNECT 的参数,CPU 借此可了解这是启动连接过程的调用的延续。 您可以调用 UDP_ConNECT 指令以确定连接的当前状态。将 Req 输入设置为 FALSE 并提供 有效的连接ID (ConnID),UDP_ConNECT 指令返回以下内容: • 如果连接处于激活状态并准备发送或接收,指令置位 Done输出。这仅表示您可以使用 该连接,并不表示存在任何远程设备。 • 如果连接仍在进行,指令置位 Busy 输出。 •如果连接不可用,指令置位 Error 输出。Status 输出字节显示其中一种错误代码,用于指 示存在的问题。 描述 EN INBOOL 使能输入 Req IN BOOL 如果 Req = TRUE,CPU 启动连接操作。如果 Req =FALSE,则输出显示连接的当前状态。 ConnID IN WORD CPU 使用连接 ID (ConnID) 为其它指令标识该连接。可能的 ConnID 范围为 0 到 65534。 LocPort IN WORD LocPort是本地设备上的端口号。本地端口号 范围为 1 到 49151,但存在一些限制。如需 了解 LocPort 定义,请参见“OUC库指令共用 的参数” (页 582)。 Done OUT BOOL 当连接操作完成且没有错误时,指令置位 Done 输出。 BusyOUT BOOL 当连接操作正在进行时,指令置位 Busy 输 出。 Error OUT BOOL当连接操作完成但发生错误时,指令置位 Error 输出。有关详细信息,请参见“开放式 用户通信库指令错误代码” (页 605)。Status OUT BYTE 如果指令置位 Error 输出,Status 输出会显示 错误代码。如果指令置位 Busy 或Done 输 出,Status 为零(无错误)TCP_SEND 指令 TCP_SEND 指令通过现有连接 (ConnID)传输来自请求的缓冲区位置 (DataPtr) 的请求的字节 数 (DataLen)。您可以将该指令用于 TCP 协议和ISO-on-TCP 协议。 LAD/FBD STL 描述 TCP_SEND Req, ConnID, DataLen,DataPtr, Done, Busy, Error, Status TCP_SEND 通过现有连接传输来自请求的缓冲区位置的请求的字节数。 当发生以下情况时,TCP_SEND 指令启动发送指定数量的字节的操作: • 程序通过将 Req 输入设置为 TRUE来调用指令。 • 连接当前未用于执行其它发送操作。 Req 输入由电平触发。建议对 Req输入使用上升沿触发器,以便指令不启动意外的发送操作。 TCP_SEND 处于繁忙状态时,程序会忽略 Req 输入。Done、Busy和 Error 输出及 Status 输 出字节显示各调用的 TCP_SEND 状态。 发送操作完成后,指令显示调用一次TCP_SEND 的 Done 或 Error 状态。此后,TCP_SEND 通 过错误代码 24作出响应,这意味着操作待决(如果通过将 Req 输入设置为 FALSE 进行调 用)。如果 Req 输入设置为TRUE,则程序会启动另一个发送操作。下图显示了输入和输出 参数之间的关系。 Req 设置为 TRUE以便开始执行消息发送操作。Busy 设置为 TRUE。 ② 消息发送完成。Done 置位,Busy 清零。 ③ EN 为 TRUE 且Req 为 FALSE,但无任何消息发送操作正在执行。因此,Error 置位且 显示错误代码 24。 ④ Req 再次设置为TRUE,因此开始执行另一消息发送操作。Busy 设置为 TRUE。 ⑤ 消息发送完成。Done 置位,Busy在一个扫描周期内清零。 ⑥ Req 保持为 TRUE,因此开始执行另一消息发送操作。 ⑦ 消息发送完成。 在一个发送操作中*多可以发送1024 字节的数据。若在 Req 输入设置为 TRUE 时执行 TCP_SEND,程序会将用户存储器中发送缓冲区的数据复制到内部缓冲区。TCP_SEND 执行 且指令置位 Busy输出后,您可以更改程序发送缓冲区。 表格 10-21 TCP_SEND 指令的参数 参数 声明 数据类型 描述 EN IN BOOL使能输入 Req IN BOOL 如果 Req = TRUE,CPU 启动发送操作。如果 Req =FALSE,则输出显示发送操作的当前状 态。 ConnID IN WORD 连接 ID (ConnID) 是此发送操作所用连接的编号。使用您为 TCP_ConNECT 操作选择的 ConnID。 DataLen IN WORD DataLen 是要发送的字节数(1到 1024)。描述 DataPtr IN DWORD DataPtr 是指向待发送数据的指针。这是指向 I、Q、M 或 V 存储器的S7-200 SMART 指针 (例如,&VB100)。 Done OUT BOOL 当发送操作完成且没有错误时,指令置位 Done输出。 Busy OUT BOOL 当发送操作正在进行时,指令置位 Busy 输 出。 Error OUT BOOL当发送操作完成但发生错误时,指令置位 Error 输出。有关详细信息,请参见“开放式 用户通信库指令错误代码” (页 605)。Status OUT BYTE 如果指令置位 Error 输出,Status 输出会显示 错误代码。如果指令置位 Busy 或Done 输 出,Status 为零(无错误)。 示例 这是 TCP_SEND 指令的应用示例CP_RECV 指令 TCP_RECV指令通过现有连接检索数据。您可以将该指令用于 TCP 协议和 ISO-on-TCP 协议。 LAD/FBD STL 描述TCP_RECV ConnID, MaxLen, DataPtr, Done, Busy, Error, Status, LengthTCP_RECV 通过现有连接检索数据。 TCP_RECV 指令仅具有 EN(使能)输入。TCP_RECV 指令没有Req(请求)输入。第一次执 行 TCP_RECV 指令后,状态位显示指令处于繁忙状态。对 TCP_RECV 的后续调用会显示繁忙状态,直至 CPU 通过指定连接接收数据。 CPU 通过指定连接接收消息后,下一次执行 TCP_RECV 指令时,会执行以下任务: •将消息数据复制到程序的数据区 (DataPtr) • 将 Length 输出设置为接收的字节数 • 置位 Done 输出,清除Busy 和 Error 输出,且将 Status 输出字节值设置为零(无错误) 您应该分配接收区/缓冲区 (DataPtr)和接收缓冲区*大长度 (MaxLen),从而避免缓冲区溢出。 如果 CPU 接收到的字节数超出程序缓冲区的容量(由 MaxLen指定),TCP_RECV 指令会将 MaxLen 字节复制到程序的数据区,并丢弃所接收字节的其余部分。在这种情况下,指令置 位Error 输出且 Status 输出字节显示错误代码 25,这表示接收缓冲区过小。 在一条消息中*多可以接收 1024字节的数据。TCP_RECV 指令始终在允许接收不同长度消 息的模式下工作。 根据使用的协议,TCP_RECV指令的操作有所不同。当您调用 TCP_ConNECT (TCP 协议)或 ISO_ConNECT (ISO-on-TCP协议)创建连接时,要为连接选择相应的协议。 使用 TCP 协议时,TCP_RECV 指令返回自程序上次调用 TCP_RECV 指令后S7-200 SMART CPU 通过指定连接接收到的所有字节。程序必须足够频繁地调用 TCP_RECV 指令以正确地描绘消 息,因为TCP 充当“流”协议。在 TCP 协议中没有消息描述(没有开始或结束标记)。因此, CPU 并不知晓消息何时开始或结束。例如,让我们假设存在一个 TCP 客户端接连不断地将四条 20 字节的消息发送给 CPU,而且 在此期间程序不调用 TCP_RECV指令。程序在 CPU 接受所有四条消息后调用 TCP_RECV 指令 时,TCP_RECV 指令以一条 80个字节的接收消息返回此数据。程序负责足够频繁地调用 TCP_RECV 指令,以便按发送消息的原样接收每条消息。