服装织梦网站源码,重庆百度推广,网页制作正版网站,h5通俗一点什么意思TCP 协议通信
TCP 通信为面向连接的通信#xff0c;需要双方都调用指令以建立连接及交换数据。S7-200 SMART 与 S7-1200 通过 TCP 通信#xff0c;在 S7-1200 调用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) #xff0c;在 S7-200 SMART 调用 Open User Communication …TCP 协议通信
TCP 通信为面向连接的通信需要双方都调用指令以建立连接及交换数据。S7-200 SMART 与 S7-1200 通过 TCP 通信在 S7-1200 调用 T-block 指令 ( TCON, TDISCON, TSEND, TRCV ) 在 S7-200 SMART 调用 Open User Communication 库指令( TCP_CONNECT,DISCONNECT,TCP_SEND,TCP_RECV) 。双方的发送和接收指令必须成对出现。
客户端主动建立连接可以理解为主站 服务器被动建立连接可以理解为从站。
注意
S7-200 SMART 在 CPU 硬件固件及编程软件版本均升级到 V2.2 之后才开始支持开放式通信。编程软件版本低于V2.2无 Open User Communication 库指令硬件固件低于 V2.2硬件不支持开放式通信协议。
S7-200 SMART TCP 连接资源8个主动连接资源8个被动连接资源
S7-200 SMART TCP 通信数据量1024 字节
硬件和软件需求及所完成的通信任务
S7-1200 侧硬件组态和编程 ( 客户机侧组态编程 )
1. 使用 TIA 软件 Portal 视图中创建新项目
2. 添加硬件并命名PLC
进入 “项目视图”在“项目树” 下双击 “添加新设备”在对话框中选择所使用的 S7-1200 CPU 添加到机架上命名为 PLC_1 如图1所示 图1. 添加新设备
3. 启用时钟位
为了编程方便使用 CPU 属性中定义的时钟位定义方法如下 在 “项目树” “PLC_1” “设备组态” 中选中 CPU 然后在下面的属性窗口中“属性” “系统和时钟存储器” 下将时钟位定义在 MB0如图2所示。 时钟位我们使用 M0.5 它是频率为 1 Hz 的脉冲可以使用它去自动激活发送任务。 图2.启用时钟位
4. 为 PROFINET 通信口分配以太网地址
在 “设备视图”中点击 CPU 上代表 PROFINET 通信口的绿色小方块在下方会出现 PROFINET 接口的属性在 “以太网地址” 下分配 S7-1200 CPU 的 IP 地址为 192.168.0.100 子网掩码为255.255.255.0如图3 所示 图3. 分配 IP 地址
5.在S7-1200 中调用建立连接指令进入 “项目树” “ PLC_1” “程序块” “OB1” 主程序中从右侧窗口 “指令” “通信”“开放式用户通信”下调用 “TCON” 指令配置连接参数如图4所示。 图4. 调用TCON指令并配置连接参数
6.创建用于交换数据的全局DB块及定义变量
通过“项目树”“PLC_1”“程序块”“添加新块”选择“数据块” 创建全局 DB 块点击“确定” 生成数据块。如图5所示。 图5.添加新块
通过“项目树”“PLC_1”“程序块”点击生成的 “数据块_1” ( DB4 ) 右键属性取消勾选“优化的块访问”。如图6所示。 图6.取消勾选优化的块访问
双击生成的 “数据块_1” ( DB4 ) 定义数组10 个字节用于发送10个字节用于接收然后编译数据块。结果如图7所示。 图7. 定义交换数据区
7.在OB1中调用 TSEND 和 TRCV
指令块位置及调用方法参考 TCON 指令的调用调用结果如图8所示。 CALL TSEND, DB3//调用TSEND使用背景DB块:DB3REQM0.5//使用1Hz的时钟脉冲上升沿激活发送任务ID1//连接号要与连接配置中一致DATAP#DB4.DBX0.0 BYTE 10// 发送数据区的数据需要注意DB块要选用绝对寻址DONEM20.0// 任务执行完成并且没有错误该位置1BUSYM20.1// 该位为1代表任务未完成不能激活新任务ERRORM20.2// 通信过程中有错误发生该位置1STATUSMW22// 有错误发生时会显示错误信息号 CALL TRCV, DB5//调用TRCV使用背景DB块:DB5EN_RM1.2//准备好接受数据 ,常1接收ID1//连接号要与连接配置中一致DATAP#DB4.DBX10.0 BYTE 10// 接受数据区的数据需要注意DB块要选用绝对寻址DONEM30.0// 任务执行完成并且没有错误该位置1BUSYM30.1// 该位为1代表任务未完成不能激活新任务ERRORM30.2// 通信过程中有错误发生该位置1STATUSMW32// 有错误发生时会显示错误信息号RCVD_LENMW34// 实际接受数据的字节数
图8. 调用发送和接收指令 接收和发送指令调用需要注意
程序块的 ID 要与指令 TCON 中的 ID 保持一致
DATA 参数的填写方法 ( 以 TRCV 程序块为例 )
1、直接输入 : P#DB4.DBX10.0 BYTE 10
2、打开数据块点击数据块右上角浮动按钮 移动数据块与OB1并排显示选中数据块变量名称 “ TCP_RCV ” 拖拽到 TRCV 指令 DATA 参数处该区域显示为绿色释放鼠标即可。 S7-200 SMART侧编程 ( 服务器侧组态编程 )
1.打开STEP 7 Micro/WIN SMART项目树指令树库Open User Communication ,调用TCP_CONNECT如图9所示。 TCP_CONNECT//调用TCP_CONNECTENSM0.0//使能输入ReqV6010.0//如果 Req TRUECPU 启动连接操作。如果 Req FALSE则输出显示连接的当前状态。使用上升沿触发ActiveSM0.0闭点//TRUE 主动连接 ;FALSE 被动连接ConnID1// CPU 使用连接 ID (ConnID) 为其它指令标识该连接。可能的 ConnID 范围为 0 到 65534。IPaddr1~40~0//IPaddr1 是 IP 地址的最高有效字节IPaddr4 是 IP 地址的最低有效字节。服务器侧IP地址写0表示接收所有请求RemPort0//RemPort 是远程设备上的端口号。远程端口号范围为 1 到 49151。对于被动连接使用零。LocPort2000// LocPort 是本地设备上的端口号。本地端口号范围为 1 到 49151但存在一些限制。DONEV6000.0// 当连接操作完成且没有错误时指令置位 Done 输出。BUSYV6000.1// 当连接操作正在进行时指令置位 Busy 输出。ERRORV6000.2// 当连接操作完成但发生错误时指令置位 Error 输出STATUSVB6002// 如果指令置位 Error 输出Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出Status 为零无错误
图9. 指令位置及调用连接指令
2.调用TCP_SEND 和 TCP_RCV 指令如图10 所示。 CALL TCP_SEND//调用TCP_SENDENSM0.5//使能输入ReqSM0.5//如果 Req TRUECPU 启动发送操作。如果 Req FALSE则输出显示发送操作的当前状态。ConnID:1//连接 ID (ConnID) 是此发送操作所用连接的编号。使用您为 TCP_CONNECT 操作选择的 ConnID。DataLen:10//DataLen 是要发送的字节数1 到 1024。DataPtrVB0//DataPtr 是指向待发送数据的指针。这是指向 I、Q、M 或 V 存储器的 S7-200 SMART 指针例如VB100。DoneV6000.6// 当连接操作完成且没有错误时指令置位 Done 输出。BusyV6000.7// 当连接操作正在进行时指令置位 Busy 输出。ErrorV6001.0// 当连接操作完成但发生错误时指令置位 Error 输出。StatusVB6004// 如果指令置位 Error 输出Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出Status 为零无错误 CALL TCP_RECV//调用TCP_RECVENSM0.0//使能输入常1接收ConnID1//CPU 将连接 ID (ConnID) 用于此接收操作连接过程中定义。MaxLen10// MaxLen 是要接收的最大字节数例如DataPt 中缓冲区的大小1 到 1024。DataPtrVB2000// DataPtr 是指向接收数据存储位置的指针。这是指向 I、Q、M 或 V 存储器的 S7-200 SMART 指针例如VB100DoneV6001.1//当接收操作完成且没有错误时指令置位 Done 输出。当指令置位 Done 输出时Length 输出有效。BusyV6001.2// 当接收操作正在进行时指令置位 Busy 输出。ErrorV6001.3// 当接收操作完成但发生错误时指令置位 Error 输出StatusVB6005// 如果指令置位 Error 输出Status 输出会显示错误代码。如果指令置位 Busy 或 Done 输出Status 为零无错误。LengthVW6006//Length 是实际接收的字节数。
图10. 调用发送和接收指令
3.分配库存储区如图11 所示。 图11. 分配库存储区 注意为保证指令库可以正常工作分配库存储区的时候一定不能与程序中使用的其他 V 区地址重叠
通信结果
将 S7-1200 和 S7-200 SMART 项目编译下载
S7-1200 侧触发 TCON 指令的REQ M10.0 置位为1S7-200 SMART 侧触发 TCP_CONNECT 指令的Req V6010.0 置位为1 以建立连接
通信结果如下 如何在 WinCC Runtime Professional 中自动调整画面分辨率适应窗口的大小? 如何实现简单的 WinCC 项目分屏 s7-1200通过4G网连接中控室 WinCC C/S结构快速入门 如何防止多个WinCC客户机同时操作或更改数值 精智Comfort屏如何周期性调用脚本 巨控协议转换网关GRM321GRM322GRM323应用场景 精智面板/二代精简PN面板如何使用Modbus TCP/IP 通信组态 如何快速实现OPC DA转为WEBSEVER 200smart数据日志的功能 HMI如何通过PLC变量控制开始和停止数据记录 WinCC flexible配方与PLC的同步 HMI面板与S7-1500 R/H 冗余PLC的通信 WinCC Flexible Smart快速导入 Smart PLC变量 巨控OPC560系列远程智能控制终端 S7_1200配方功能快速入门 PLC远程调试监控模块-巨控GRM530 PN IO设备ET 200SP将支持R1模式 SCL 常见问题 PLC协议转换网关巨控NET400 如何判断S7通信中断 S7-1500R/H PROFIBUS DP 通信 如何实现PLC短信报警 WinCC Modbus TCP 通信 wincc 远程和PLC通讯方案 1500PLC与wincc通过4G网络远程通讯 WINCC中自定义 XY 轴的多功能曲线的实现方法 wincc报警如何通过短信发送给手机 在WinCC(TIA Portal)项目中,如何正确的使用面板,模板,弹出窗口和滑入窗口? 通过巨控GRM532Y-C远程调试下载国外PLC 巨控GRM远程模块配置使用流程简介 巨控远程模块微信报警配置方法 TIA中如何将数据块的实际值转到初始值中 西门子200smart与三菱FX3U plc之间的自由口通讯 wincc 远程和PLC通讯方案 1500PLC如何更好地配置一个OPC UA客户机使其与服务器进行有效的通信? 如何使用EXCEL访问WinCC中的实时数据实现报表 西门子PLC无线通讯解决方案 数据丟了--WinCc历史数据丢失怎么办 巨控无线通讯模块在带式输送机行业的应用 WinCC激活故障排除及解决思路 Wincc在手机端监控_巨控OPC560解决方案 PLC之间的Profibus 通讯 怎么远程控制国外的PLC