您现在所在的是:

PC Based IPC 工控机

回帖:15个,阅读:8618 [上一页] [1] [2] [下一页]
39138
jint 管理员
文章数:20700
年度积分:648
历史总积分:39138
注册时间:2007/8/30
发站内信
发表于:2018/6/3 15:10:19
#0楼
标题:手把手教你winform上位机系列二:PLC编写及配置

作者:橘子猫

上一节我们已经搭建好了winform上位机的界面显示部分,现在我们需要做的事情如下:
1.PLC程序编写及通信配置
2.完善winform上位机程序,根据PLC的通信协议进行通信部分的编程


PLC程序编写及通信配置:
回想上节我们说过的一句话,上位机的通信协议由下位机来决定,所以我们需要选择一个通信协议,我们今天采用西门子S7-1200紧凑型小型plc,所以为了教学方便我们今天选择西门子自己通信协议S7通信协议。
好了,都安静。那个陈独秀同志先坐下,现在开始上课,有请扁桃体同学发言:

让我们新建一个plc项目
附件 image.jpg

修改项目名称为:PLC与上位机通信
附件 2.jpg

我们采用西门子S7-1200系列PLC的具体型号1215DC/DC/DC固件版本选择4.2
注意:务必确认好自己PLC的CPU订货号以及固件版本,否则PLC会报错,订货号在PLC侧面可以看见。
附件 3.jpg
附件 4.jpg

下图是新建好PLC项目后的情形,接下来就开始编写我们的PLC程序了
附件 5.jpg

程序段1:LED开关控制是常用的开关启停电路控制,但是今天我们不用它
程序段2:我们需要使用程序段二作为我们的PLC程序,这样的好处是一个位就可以控制开和断,点一下为开,再点一下为关,如此反复,如果使用程序段1则是两个位控制开断,当然在有的场景程序段一比程序段二更适合,这里不做讨论。
附件 6.jpg
附件 image.jpg

下面进行通信端口配置:先选择左侧设备组态,双击图中PLC,找到保护选项后将允许远程连接勾选上,配置好以太网地址作为PLC的IP地址,这个地址后面在上位机访问PLC时会用到。
附件 image.jpg
附件 image.jpg

中华工控网,转载请注明出处!感谢作者供稿!
39138
jint 管理员
文章数:20700
年度积分:648
历史总积分:39138
注册时间:2007/8/30
发站内信
发表于:2018/6/3 15:17:01
#1楼
将编写好的程序下载
PLC
附件 10.jpg

PLC程序编写结束,接下来进行上位机的编程。
打开我们之前的winform项目:在右侧解决方案那里添加引用
附件 image.jpg
附件 11.jpg
附件 12.jpg

下面的两个dll库文件按照主流PLC的通信协议(比如西门子S7协议,三菱MC协议,欧姆龙Fins以及Modbus协议等等一系列常用的协议)进行封装好了的,在使用时只需要引用并在程序里配置相应参数,最后通过调用dll文件内部的函数来执行PLC各存储区域的读写(M区,V区,DB区,IO口等等存储区)。
封装的好处在于通信协议是一个会经常重复使用的代码段,这样会减少开发人员的开发时间,同时也有利于只会PLC编程的同志们学习上位机编程。
关于我们今天使用的S7协议,是比较适合西门子PLC通信的,因为不需要在PLC里进行通信编程,但是S7协议西门子是不对外开放的,所以我们只有通过抓包解析来了解通信协议,具体怎么抓包解析可以百度,这里不做讲解,你只需要知道我们已经有了一份写好的通信协议了,只需要引用配置使用就OK啦!
附件 13.jpg
附件 14.jpg

引用成功后会有如下两个dll文件加载进来了
附件 15.jpg

下面就是配置我们刚引用的通信文件
附件 image.jpg

引用配置完成,接下来我们还需要做的就是设置好PLC的型号和IP地址及通信端口号。
附件 image.jpg

所有配置完成并且在界面加载时建立与PLC的连接,后面当我们在写后台逻辑控制程序时需要与PLC交互数据时,就调用引用的文件里的通信函数就能进行通信来读写想要的数据了。
我们查看PLC的变量表,知道LED启停控制位使用的是M10.2,所以我们在LED按钮里面加入对M10.2位的数据修改就可以做到LED控制了。
附件 18.jpg

PLC里的LED是一个上升沿触发,所以无论开启还是停止都是用上升沿触发,那么我们只需要在上位机的LED按钮按下时触发一次将M10.2的位修改为1。这样我们就实现了控制。
修改LED按钮如下:
附件 19.jpg

将PLC与电脑用网线连接起来,修改电脑IP地址,使其与PLC在同一局域网段,这里我们设置为192.168.0.190
万事大吉,现在运行Winform上位机,点击按钮即可看见PLC的Q0.2输出点(LED常量位)亮灭了。

好了,今天的教学先到这里,下一节我们将要详细学习Modbus通信协议,这是一个开放的通信协议,所以我会讲解具体的通信细节,怎么来自己写通信,而不是调用别人封装好的通信文件。如果大家有好的建议以及想法可以留言评论,你们的点赞评论将是我教学的动力,下课。我是橘子猫,谢谢观看!

——————————————————————
中华工控网,转载请注明出处!感谢作者供稿!
[此贴子已经被作者于2018/6/3 15:23:16编辑过]
477
sdtachenmeng
文章数:5
年度积分:53
历史总积分:477
注册时间:2017/2/4
发站内信
发表于:2018/6/5 7:18:16
#2楼
就是不知道dll文件在哪里下载??
9152
chi1225
文章数:2459
年度积分:548
历史总积分:9152
注册时间:2014/7/31
发站内信
发表于:2018/6/5 8:57:33
#3楼
厉害了。。
37052
cvlsam 版主
文章数:12388
年度积分:1404
历史总积分:37052
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/6/5 16:07:25
#4楼
以下是引用sdtachenmeng2018/6/5 7:18:16的发言:
就是不知道dll文件在哪里下载??

曾经被论坛封杀的AutoCtrl等广告贴内,你现在可以在工控人家园www.ymmfa.com中下载。

请注意:他们提供的DLL是收费的,你测试测试DEMO没有问题,正式用在项目中请至少备好一个月工资。

Good Luck~
6740
甘陵至尊
文章数:563
年度积分:525
历史总积分:6740
注册时间:2005/7/3
发站内信
发表于:2018/6/5 17:01:48
#5楼
学习了,谢谢分享!
39138
jint 管理员
文章数:20700
年度积分:648
历史总积分:39138
注册时间:2007/8/30
发站内信
发表于:2018/6/5 17:32:06
#6楼
回复 #4楼 cvlsam
这个有免费的dll文件吗?我还没问作者。
37052
cvlsam 版主
文章数:12388
年度积分:1404
历史总积分:37052
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/6/6 15:15:04
#7楼
以下是引用jint2018/6/5 17:32:06的发言:
这个有免费的dll文件吗?我还没问作者。

可以参照:
http://www.cnblogs.com/dathlin/p/7703805.html#3984454

HslCommunication组件,免费。

Good Luck~
37052
cvlsam 版主
文章数:12388
年度积分:1404
历史总积分:37052
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/6/6 15:16:29
#8楼
如何在VS中使用nuget下载使用该组件可以参考:
https://jingyan.baidu.com/article/066074d636fd19c3c21cb0a2.html

Good Luck~
37052
cvlsam 版主
文章数:12388
年度积分:1404
历史总积分:37052
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2018/6/6 15:31:13
#9楼
组件作者对于该组件的有限支持:
附件 snap3.jpg

在项目中安装该组件的方法:
http://www.cnblogs.com/dathlin/p/7705014.html

Good Luck~

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

93.6006