迪文科技论坛

 找回密码
 立即注册
搜索
查看: 11722|回复: 13

PLC例程:迪文屏与西门子PLC软硬件连接指南

[复制链接]

567

主题

167

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11954
发表于 2019-5-28 11:19:35 | 显示全部楼层 |阅读模式
本文介绍迪文DGUS Ⅱ触摸屏与西门子PLC通过Modbus RTU协议实现通讯的软、硬件连接说明。



1 效果展示
迪文产品型号:DMT10600T070_A5WTC
西门子PLC:S7-200 SMART
分辨率:1024*600

效果展示1:VB保持区验证演示视频效果展示2:外部输出验证演示视频效果展示3:外部输入验证演示视频

视频中选用了型号为DMT10600T070_A5WTC的DGUS Ⅱ触摸屏,该产品是一款7寸高分辨率,工业级智能HMI,接口丰富,防水防UV,室内和室外均可使用。户外使用防眩光,外壳高低温不变形。屏幕为电容式触摸屏,可实现滑动翻页,手势调节数据等功能,触控效果好,灵敏度高,带来精彩的人机交互体验。
PLC型号为西门子S7-200 SMART,该款产品采用全新的CPU 模块,可全方位满足不同行业、不同客户、不同设备的各种需求。SR/ST 标准型CPU 可扩展6 个扩展模块和1 个信号板,适用于I/O 点数较多,逻辑控制较为复杂的应用。S7-200 SMART CPU 模块均集成1 个RS485 接口,可以与变频器、触摸屏等第三方设备通信。如果需要额外的串口,可通过扩展CM01 信号板来实现,信号板支持RS232/RS485自由转换。串口支持Modbus RTU协议。

2 连接指南详解2.1 硬件连接指南
如下图所示,触摸屏通讯接口使用COM4的RS485,即A、B脚,电源24VDC,即V、G脚。
PLC通讯接口使用通讯口(X10),通讯口为标准的DB9母头,3脚为A,8脚为B,分别与触摸屏A-A,B-B对接上,X11的L+接24V+,M接24V-。

2.1.1 接口定义
外部输入读取时,使用I0.0输入,将X11的端子1M接24V-,0.0端子经按键后接24V+,按键按下,I0.0输入24V,有输入,否则无输入,接线图如下图:

2.1.2 硬件连接效果图

2.2 软件配置指南2.2.1 西门子STEP 7-MicroWIN SMART编程软件配置
1)新建工程并保存:

2)工程界面如下,双击PLC硬件配置,选择通讯设置口:
file:///C:\Users\Aaron\AppData\Local\Temp\ksohtml4696\wps7.jpgfile:///C:\Users\Aaron\AppData\Local\Temp\ksohtml4696\wps8.jpg

3西门子通讯参数是通过程序设定,配置如下:
a) 上电运行一次:

各代码对应如下:
Mode
模式选择,启动/停止MODBUS,1=启动;0=停止
Address
从站地址,MODBUS从站地址,取值1~247
Baud
波特率,可选1200,2400,4800,9600,19200,38400,57600,115200
Parity
奇偶校验,0=无校验;1=奇校验;2=偶校验
Port
0=CPU集成的RS485通信口 Port 0,1=可选信号板通讯口 Port 1
Delay
延时,附加字符间延时,缺省值为0
Max IQ
最大I/Q位,参与通信的最大I/O点数,S7-200 SMART的I/O映像区为256/256,缺省值为256
Max AI
最大AI字数,参与通信的最大AI通道数,取值范围 0-56。值为0时将禁止读取模拟量输入
Max Hold
最大保持寄存器区,参与通信的V存储区字(VW)
Hold Start
保持寄存器区起始地址,以&VBx指定(间接寻址方式)
Done
初始化完成标志,成功初始化后置1
Error
初始化错误代码
注:在本例子中,设置从站地址为3,Port0通讯波特率为9600无校验;可以使用的S7-200 SMART最大数字量输入输出点数为256;可以使用的S7-200 SMART 最大模拟量输入寄存器字数为56;可以使用的V区寄存器地址字数为1000, 起始地址为VB1000。注意:本例子中,Modbus RTU 从站指令使用的库存储为VB0---VB780,这寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT和 MBUS_SLAVE指令在内。

b) 执行Modbus通讯协议:

c) 在CPU的V数据区中分配库指令数据区(Library Memory):
至此,通讯口配置完成。

2.2.2 编写PLC验证程序
写PLC程序前请仔细阅读以下内容:
1)PLC地址对应表:

2)PLC读写功能码:
以上我们只读写Q/I/区的内容,使用的功能码为01/02/03/06/15(0F)。

3)注意事项
注:由子程序参数Hold Start和Max Hold指定的保持寄存器区,是在S7-200 SMART CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通信。注意Modbus中的保持寄存器区按“字”寻址,即Max Hold规定的是VW而不是VB的个数。
PLC Modbus初始化时,规定了 Modbus 保持寄存器区从 VB1000 开始(Hold Start = VB1000),并且保持寄存器为1000个字(Max Hold=1000),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB1000~VB2999共2000个字节。因此分配库指令保留数据区时至少要避开 VB1000~VB2999 区间。
另外,尤其注意选用的CPU的V存储区大小。CPU型号不同V数据存储区大小不同。应根据需要选择Modbus保持寄存器区域的大小。
因为VW以字为单位且起始地址为VB1000,则对应地址如下:
VW1000->40001
VW1002->40002
VW1004->40003
...
VW1010->40005
...
VW1020->40010

2.2.2.1 外部输出线圈的读写(Q0.3)
此例不需要PLC编写程序;

2.2.2.2 外部输入线圈的读写(I0.0)
此例不需要PLC编写程序;

2.2.2.3 变量实时读写
本程序共读取两个变量,变量1在触摸屏上属性为“读写”对应PLC地址为VB1010,当变量1=100时,Q0.0点亮,其他值Q.0熄灭,变量2再触摸屏属性为“只写”,对应PLC地址VB1012,通过PLC编写程序实现变量得自加,每1S增加1,当变量大于10时,从零开始计数,往复循环当变量大于5时,Q0.点亮小于5时,熄灭,PLC程序如下:
PLC程序链接:详见压缩文件“《西门子PLC工程》——PLC程序”。

2.2.3 触摸屏软件配置
1、触摸屏工程文件:
详见压缩文件“《西门子PLC工程》——DGUS Ⅱ触摸屏程序”。
2、触摸屏OS程序:
(1)触摸屏OS程序主要实现功能为读写“输出线圈Q0.3”,读取“输出线圈状态(I0.0)”,读写“VB保持寄存器”状态。
(2)OS程序链接:详见压缩文件“《西门子PLC工程》——OS_SIEMENS”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

10

回帖

37

积分

新手上路

Rank: 1

积分
37
发表于 2020-8-8 16:36:09 | 显示全部楼层
OS程序感觉好难啊
回复

使用道具 举报

0

主题

1

回帖

9

积分

新手上路

Rank: 1

积分
9
发表于 2020-11-19 12:09:52 | 显示全部楼层
努力学习中
回复

使用道具 举报

3

主题

9

回帖

209

积分

中级会员

Rank: 3Rank: 3

积分
209
发表于 2020-11-20 13:48:47 | 显示全部楼层
请问MODBUS地址和PLC输入输出关系是怎么对应的呢?
回复

使用道具 举报

0

主题

90

回帖

1398

积分

金牌会员

Rank: 6Rank: 6

积分
1398
发表于 2020-11-20 14:41:03 | 显示全部楼层
本帖最后由 土匪老张的春天 于 2020-11-20 14:49 编辑

您好,如图片所示,MODBUS的地址40001是起始地址,实际对应到我们屏里面的地址是0000,偏移量为40001,图片中的是MODBUS地址设置的时候对应的PLC地址的一个例子
回复

使用道具 举报

3

主题

9

回帖

209

积分

中级会员

Rank: 3Rank: 3

积分
209
发表于 2020-11-21 11:44:36 | 显示全部楼层
有个项目十分类似,屏是DMT32240T035 02WN,PLC是S7-1200,扩展CM1241 RS485通信板,做MODBUS TRU通信,PLC做从,屏作主。只有一个显示画面,如图,使用变量0X0000~0X0005.

屏和PLC地址对应关系如下:
屏---PLC
0x0000----I2.1
0x0001----I2.5
0x0002----I3.1
0X0003----I3.5
0X0004----DB6.DBW0
0X0005----DB6.DBW1
请指点一下迷津,22*.bin如何定义及14*.bin如何编程?谢谢。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

178

回帖

1117

积分

金牌会员

Rank: 6Rank: 6

积分
1117
发表于 2020-11-21 14:24:03 | 显示全部楼层
您好,您的屏DMT32240T035 02WN属于K600+的,和上面讲的DGUS2是不一样的,具体可以参考这个文档 ,里面有关于22文件的写法。14号文件是工程自动生成的变量文件,不需要额外编辑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

3

主题

9

回帖

209

积分

中级会员

Rank: 3Rank: 3

积分
209
发表于 2020-11-23 11:41:12 | 显示全部楼层
modbus协议指令中0xa01c0xa01d 是从机数据地址,从机数据地址40001,怎么体现呢?转成16进制就可以吗?谢谢。
回复

使用道具 举报

0

主题

220

回帖

2338

积分

金牌会员

Rank: 6Rank: 6

积分
2338
发表于 2020-11-24 09:08:33 | 显示全部楼层
879275467 发表于 2020-11-23 11:41
modbus协议指令中0xa01c0xa01d 是从机数据地址,从机数据地址40001,怎么体现呢?转成16进制就可以吗?谢 ...

是的,地址转换成16进制就可以的。
回复

使用道具 举报

3

主题

9

回帖

209

积分

中级会员

Rank: 3Rank: 3

积分
209
发表于 2020-11-25 08:10:45 | 显示全部楼层
wnly 发表于 2020-11-24 09:08
是的,地址转换成16进制就可以的。

收到,谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-21 22:41 , Processed in 0.075813 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表