西门子PLC模块控制器CPU1215C西门子代理商 西门子总代理
西门子PLC模块控制器CPU1215C西门子代理商 西门子总代理
西门子PLC模块控制器CPU1215C西门子代理商 西门子总代理
西门子PLC模块控制器CPU1215C西门子代理商 西门子总代理
博图中的自定义数据类型UDT详解,一文轻松学会一、什么是UDT?UDT是一种自定义的数据类型,它可以由多个不同数据类型元素组成,元素可以是基本数据类型,也可以是STRUCT、数组等复杂数据类型以及其它UDT等。UDT类型嵌套UDT类型的深度限制为 8 级。
博图从V11开始,S7-1200支持PLC数据类型(UDT),这篇文章我将使用博图V16版本,来为大家介绍UDT的具体使用方法。
二、如何建立UDT并用于编程?为了让大家对UDT有个直观的认识,我将建立一个UDT的数据类型,并添加几个跟电机控制相关的变量:启动、停止和电机。
1、 新建UDT
新建博图项目后,在PLC的菜单下的PLC数据类型选型下,点击“添加新数据类型”,如图1所示。
图 1 新建UDT
2、 使用UDT
在程序块选项下,点击“添加新块”,并在全局数据块中新建电机的UDT数据类型,如图2所示。
图 2 使用UDT
3、 编写程序
打开OB1编写“启保停”程序,变量使用UDT的数据元素,如图3所示。
图 3 编写程序
三、更多UDT的应用UDT功能非常强大,除了上面的这种应用外,还有以下几种应用的情况。
1、UDT在PLC变量表的应用在PLC数据类型中添加对应的UDT,并编写数据,然后在PLC变量表中使用,如图4所示。
图 4 PLC变量表中使用UDT
需要注意的是,在PLC变量表中使用UDT,一般只适合变量连续的场合。
2、UDT在全局数据块中使用UDT在全局数据块的使用,有两种情况,一种是UDT类型的全局数据块,一种是UDT类型是全局数据块的一个元素。情况1如图5所示。
图 5 UDT类型的全局数据块
情况2如图6所示。
图 6 UDT类型在全局数据块中使用
3、UDT类型在博图WinCC中使用在博图WinCC中的HMI变量可以直接使用UDT数据类型,这种方式相比单个类型的变量更加方便,如图7所示。
图 7 UDT类型在HMI中使用
UDT除了这些使用比较方便外,还可能方便进行修改,假设我的某个UDT的元素需要进行修改,可以在UDT的类型中进行修改,在编译一下,所有用到该UDT的都可以进行快速修改,如图8所示。
图 8 UDT的shujuxiugai
四、总结这篇文章中介绍了PLC自定义数据类型(UDT)的一些基本的使用,开头我曾介绍到UDT的元素可以是STRUCT、数组等复杂数据类型以及其它UDT,并且UDT的嵌套深度为8层,所以可以进行非常复杂的应用,即方便编程也方便管理。
西门子S7-200SMART PLC的FOR指令如何实现程序嵌套循环说到程序控制指令,其中就有FOR-NEXT循环指令,我们知道FOR循环指令是可以嵌套8层,一般情况下用不到8层,Zui多用到2层,那么2层如何嵌套如何实现呢?接下来就带大家来一步一步操作完成内循环和外循环程序设计。
一、FOR-NEXT循环指令说明
(1)INIT、FINAL分别定义起始值和结束值。
(2)使能输入EN有效,循环体开始执行,执行到NEXT指令时返回,每执行一次循环体,当前值计数器INDX增1,达到终止值FINAL时,循环结束。
(3)使能输入无效时,循环体程序不执行。每次使能输入有效,指令自动将各参数复位。
循环结束完成指令
二、FOR-NEXT循环指令使用注意事项(1)使用FOR和NEXT指令可在重复执行分配计数的循环中执行程序段。
(2)每条FOR指令需要一条NEXT指令。
(3)将FOR-NEXT循环置于Zui大嵌套深度为8层的FOR-NEXT循环内。
三、FOR-NEXT指令使用方法当I0.0为ON时接通一个上升沿脉冲触发FOR指令EN端循环3次,VB100值等于3。
四、FOR-NEXT指令嵌套2层使用方法
I0.0触发时外循环,I0.1触发是内循环,每执行一次外循环内循环执行3次,外循环执行2次,内循环执行6次。
西门子S7-200 SMART PLC之间通过指令实现S7通讯导读:
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
— CPU与编程设备之间的数据交换。
— CPU与HMI之间的数据交换。
— CPU与其他S7-200 SMART CPU之间的PUT/GET通信。
S7-200 SMART CPU 以太网连接资源如下:
— 1个连接用于与STEP7 Micro/Win SMART软件的通信。
— 8个连接用于CPU与HMI之间的通信。
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET被动连接
CPU1 (192.168.2.1 ) 把VB100~107数据传输到CPU2 (192.168.2.2 ) VB0~7
CPU1 (192.168.2.1 ) 把VB100~107数据读取到CPU2 (192.168.2.2 ) VB0~7
一、 PUT/GET 指令格式S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之间的以太网通信(PUT/GET 指令格式见 表 1)。PUT/GET 指令只需要在主动建立连接的 CPU 中调用执行,被动建立连接的 CPU不需要进行通信编程。PUT/GET 指令中TABLE 参数用于定义远程CPU的 IP地址、本地CPU和远程 CPU的数据区域以及通信长度(TABLE 参数定义见 表 2)。
LAD/FBD
STL
描述
PUT TABLE
PUT 指令启动以太网端口上的通信操作,将数据写入远程设备。PUT 指令可向远程设备写入Zui多 212 个字节的数据。
GET TABLE
GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取Zui多 222 个字节的数据。
表 1 PUT和GET 指令
字节偏移量
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0
D1
A2
E3
0
错误代码4
1
远程 CPU的 IP地址
2
3
4
5
预留(必须设置为0)
6
预留(必须设置为0)
7
指向远程 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
8
9
10
11
通信数据长度5
12
指向本地 CPU 通信数据区域的地址指针
(允许数据区域包括:I、Q、M、V)
13
14
15
表 2 PUT和GET 指令的TABLE参数定义
1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
2 A :通信已经激活标志位。
3 E :通信发生错误,错误原因需要查询 错误代码4。
4 错误代码 :见表 3 PUT 和 GET 指令TABLE 参数的错误代码。
5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT 指令可向远程设备写入Zui多 212 个字节的数据,GET 指令可从远程设备读取Zui多 222 个字节的数据。
错误代码
描述
0
通信无错误
1
PUT/GET TABLE参数表中存在非法参数:
本地CPU通信区域不包括 I、Q、M 或 V。
本地CPU不足以提供请求的数据长度。
对于 GET指令数据长度为零或大于 222 字节;对于 PUT指令数据长度大于 212 字节。
远程CPU通信区域不包括 I、Q、M 或 V。
远程CPU 的IP 地址是非法的 (0.0.0.0)。
远程CPU 的IP 地址为广播地址或组播地址。
远程CPU 的IP 地址与本地 CPU的IP 地址相同
远程CPU 的IP 地址位于不同的子网。
2
同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个)
3
无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。
4
从远程 CPU 返回的错误:
请求或发送的数据过多。
STOP 模式下不允许对 Q 存储器执行写入操作。
存储区处于写保护状态
5
与远程 CPU 之间无可用连接:
远程 CPU 无可用的被动连接资源(S7-200 SMART CPU被动连接资源数为 8 个)。
与远程 CPU 之间的连接丢失(远程 CPU 断电或者物理断开)。
联系方式
- 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
- 邮编:201600
- 联系电话:未提供
- 经理:吴悦
- 手机:19514718569
- QQ:2810544350
- Email:2810544350@qq.com