S7-200SMART的ISO-ON-TCP通信(上)

200SMART的开放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-ISO-ON-TCP通信,支持CPU固件版本V2.2以上,常用于与第三方支持相同协议的设备通信。

   开放式通信(OUC)编程可以通过指令或者调用OUC的指令库,通信双方均要调用指令,通信数据量可以达到1024个字节,这次我们将介绍OUC通信中的ISO-ON-TCP通信。

   ISO-ON-TCP通信是一种面向连接的通信协议,是在TCP协议上定义了ISO传输属性,通信之前需要先建立连接, 采用全双工的传递方式,传输的报文为消息流,信息有开始有结尾,传输信息更加可靠。

   ISO-ON-TCP通信的编程可以通过通信指令或者开放式用户通信库指令,如图:

 

图一:通信指令

   

   图二:开放式用户通信库指令

这里建议使用开放式用户通信库指令,编程和填写参数都能简单一点。

下面开始介绍一下ISO-ON-TCP通信的流程:

建立连接(关键!必须!)

交换数据(发送/接收)

       

断开连接(一般不用)

分配库存储器(必须!建议选择较大的地址避免冲突)

接下来介绍一下各个指令的每个引脚的含义

首先介绍ISO-ON-TCP_CONNECT指令

参数

数据类型

描述

EN

BOOL

使能输入

Req

BOOL

如果Req=TRUE,CPU启动连接操作。如果 Req = FALSE,则输出显示连接的当前状态。

Active

BOOL

设置本地CPU在通信中的角色

Active= TRUE为主动连接(一般用于客户端)

Active= FALSE为被动连接(一般用于服务器)

ConnID

WORD

CPU使用连接 ID (ConnID) 为其它指令标识该连接。可能的ConnID范围为0到65534。

IPadd

IPaddr4

BYTE

这些是IP地址的四个八位字节。IPaddr1到IPaddr4 填写通信伙伴的IP地址

RemTsap

WORD

RemPort 是远程 TSAP 字符串。程序使用指针来传递字符串。

LocTsap

WORD

LocPort 是本地 TSAP 字符串。程序使用指针来传递字符串。

Done

BOOL

完成标志位,建立通信连接之后一直保持1。

Busy

BOOL

当连接操作正在进行时,指令置位 Busy 输出。

Error

BOOL

当连接操作完成但发生错误时,指令置位 Error 输出。

Status

BYTE

如果指令置位 Error 输出,Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出,Status 为零(无错误)。

这里我们再对一些参数进行一些补充解释:

ConnID:ConnID用于标识通信连接,不同的ConnID不能重复,且占用开放式通信资源最多16个,客户端的ConnID与服务器的ConnID无关。

IPaddr:填写通信伙伴的IP地址,客户端填写服务器的IP,服务器填写客户端的IP。主动连接不能填0.0.0.0,只有被动连接可以填0.0.0.0,表示接受任意远程IP地址的连接。不可以填写本地CPU的IP地址以及任何广播或多播地址。

RemTsap 和LocTsap设置:

Tsap为200SMART字符串数据类型(长度字节,后接字符,如下图)

在数据块中VB0中写”智控教育”,VB1000中写“ABCD“,如图所示,第一个字节为字符串长度,后面跟各个字符,中文占2个字节,英文,符号占1个字节。

Tsap字符串长度为2~16个字符,区分大小写,有两点特殊要求:

字符串长度如果是2,必须以16#E0开始,否则报错20:TSAP填写错误,例如:第一个字符16#E0,第二个字符A “$E0A“

不能以”SIMATIC-” 开头

RemTsap 和LocTsap是指向字符串类型的指针,填写方式有两种:

第一种为字符串常量,在双引号内写字符内容,例如”智控教育”(键盘输入英文、半角) 。

第二种为以指针方式填写,在数据块种定义字符串变量,然后将对应地址写到指令参数上。

Tsap客户端/服务器,RemTsap 和LocTsap交叉对应,如图。

通信前确定好通信角色

CPU作为服务器先就绪,客户端发送请求报文后,才可建立连接,否则被拒绝。

CPU作为客户端:触发Req后,主动发送报文,请求建立连接

CPU作为服务器:触发Req后,不主动发送报文,等待

Req触发顺序:服务器侧要先就绪,客户端发送请求报文后,才可以建立连接,否则被拒绝。

例如我设置本地客户端IP为192.168.0.100,ConnID为10,RemTsap 为”ABCD”,LocTsap为”DCBA”;

远程服务器IP为192.168.0.101,ConnID为20,RemTsap 为” DCBA”,LocTsap为” ABCD”;

如图

这次关于200SMART的ISO-ON-TCP通信就暂时介绍到这里,下一篇将继续为大家介绍ISO-ON-TCP的发送和接收指令,以及ISO-ON-TCP程序编写

(0)

相关推荐

  • 西门子s7-200smart modbus-tcp通信实例编程详细指导

    西门子S7-200Modbus-TCP通信例子[]绝密[]NDA[X]公开一. 组网概述本文以 ZKA-4488-ETH 为例介绍西门子PLC与深圳市综科智控科技开发有限公司的IO设备进行Modbus ...

  • cpu通俗解释是什么

    CPU是指中央处理器(Central Processing Unit),是计算机中负责读取指令,对指令译码并执行指令的核心部件.CPU主要包括两个部分,即控制器.运算器,其中还包括高速缓冲存储器及实现 ...

  • 西门子S7-1200/1500PLC工业以太网TCP通信的其他指令

    上一文章,简要说明了西门子S7-1200/1500PLC工业以太网TCP通信的两个主要通信指令的组态.基本可以满足常用的通信需要.还有其他的一些通信指令,如TCON建立通信连接.TDISCON断开通信 ...

  • TCP通信接收数据不完整的解决方法

    一.TCP协议.Socket编程流程 TCP/IP协议及socket封装 套接字的编程流程: 二.Send 和 Recv的基本介绍 2.1 Send函数 int send( SOCKET s, con ...

  • 【图文精讲教程】200SMART PLC之间的PN通信

    准备工具 1.STEP7-MicroWIN SMARTV2.5软件 2.200SMARTST20PLC两台 3.交换机 一个 实现方式 1.打开STEP7-MicroWIN SMARTV2.5软件,在 ...

  • 200SMART与G120的PROFINET通信(3)

    上次为大家介绍了通过博途软件对G120进行参数设置,这次为大家介绍200SAMRT通过PROFINET通信对G120变频器进行控制. 首先添加GSD文件,如图 通过查找PROFINET设备对G120进 ...

  • 200SMART与G120的PROFINET通信(2)

    上次为大家介绍了G120变频器的报文格式以及1号报文的用法,这次为大家介绍通过博途软件对G120进行参数设置. 要根据订货号和版本号添加G120变频器的控制单元,如图. 然后根据订货号,在硬件目录中添 ...

  • 200SMART与G120的PROFINET通信(1)

    上次为大家介绍了200SMART与S7-1200之间的PROFINET通信,这次为大家介绍S7-200SMART与西门子驱动器G120之间的PROFINET通信. 首先要了解一下G120的PROFIN ...

  • 200SMART与S7-1200的PROFINET通信(2)

    上次为大家介绍了S7-1200作为控制器,200SMART作为IO设备的PROFINET通信.这次介绍200SMART作为控制器,S7-1200作为IO设备的PROFINET通信. 首先要在博途软件中 ...

  • 200SMART与S7-1200​的PROFINET通信(1)

    上次为大家介绍了200SMART通过PROFINET通信控制ET200SP分布式IO,这次介绍S7-200SMART的PROFINET通信S7-1200. 200SMART和S7-1200都支持PRO ...

  • C语言、嵌入式应用:TCP通信实例分析

    前言 [socket笔记]TCP.UDP通信总结 [socket应用]基于C语言的天气客户端的实现 本篇笔记我们再来一起回顾一下socket相关的知识:我们的开发板作为TCP客户端,与TCP服务端程序 ...

  • S7-200SMART的UDP通信(上)

    200SMART的开放式通信(Open User Communication)包括TCP通信,UDP通信以及ISO-on-TCP通信,支持CPU固件版本V2.2以上,常用于与第三方支持相同协议的设备通 ...