作者 | 主题 |
---|---|
梦到内河 侠客 经验值: 730 发帖数: 10 精华帖: 3 |
楼主 2018-09-05 23:33:34
主题:使用C#+WPF做S7-1200上位机(附上源码QQ:8300877) 使用C#编程语言编写PLC上位机软件(源码在文章最后) 本程序使用WPF做界面,C#做逻辑,为了界面美观使用了老外的一个开源皮肤框架,逻辑代码为了和S7-1200通讯使用了行内一位大神的库。 借鉴大神的框架在文章后面会提到(这里也是为了尊重原创作者的劳动成果)。 下面来看看界面,再一一介绍下程序框架: 主界面(使用一个win窗口来作为显示,界面左侧有弹出菜单,界面内容通过菜单按钮调用Page来实现界面内容转换) 控制界面使用了按钮和滑动条,按钮模拟了HMI的工作模式,弹起和按下事件分别置位复位PLC变量,滑块是自己做的一个Style,WPF这点还是很方便的。 参数输入界面模拟了 HMI的 IO域,编辑时不刷新变量,输入完成后写入变量,再更新变量里的内容;右边配方功能也是模拟的西门子HMI里配方功能,保存参数到序列化文件,读取的时候反序列化写入PLC变量 曲线记录界面使用了DynamicDataDisplay 开源控件来做为曲线显示,此控件比较强大。在曲线显示的同时后台还要记录数据,在此使用了list来缓存数据并保存到序列化文件,在记录完成后反序列化一次性写入access数据库。 数据查询界面利用日历控件来作为搜索access数据的条件,筛选出零件编号,再把零件编号的对应数据以曲线方式呈现出来,同时也可以以表格方式呈现 故障报警界面使用listbox控件做为显示,利用的消息队列来排序故障信息 更改皮肤颜色界面是这个UI框架附带的功能,效果蛮好。 下面来介绍下程序 界面初始化时连接PLC PLC连接方法 建立一个实体类,作为需要读取的PLC变量,一次性读取多个变量数据。 曲线刷新使用了多线程,关于数据全部在后台线程里进行,不影响界面运行 曲线数据更新到list使用了linq语法来筛选出需要的数据进行读和写 序列化数据内容,写入到access,当时试过一遍读取数据一遍写入数据库,发现耗时很长,后来想到序列化,缓存再一次性写入,速度提高很多。 目前就介绍到这里,有需要做类似项目的同行可以在下面评论联系,相互学习。 QQ:8300877 QQ群:923525781 本程序源码github地址 https://github.com/lt8300877/NormalizingApp 如果喜欢可以star或是fork。 这里介绍一下PLC通讯库 HslCommunication组件库; NuGet地址: https://www.nuget.org/packages/HslCommunication/ Material DesignXamlToolKit 皮肤框架源码 github地址 https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit |
刚刚入门 至圣 经验值: 12687 发帖数: 2083 精华帖: 23 |
1楼 2018-09-06 10:02:11
主题:回复:使用C#+WPF做S7-1200上位机 楼主厉害,C#等做监控界面以后也会越来越多,毕竟开放性好。只要与下位PLC的通讯稳定的话是可以取代组态软件的(小规模单站)。 |
西南小霸王 侠客 经验值: 929 发帖数: 179 精华帖: 0 |
2楼 2018-09-06 10:05:16
主题:回复:使用C#+WPF做S7-1200上位机 这界面真漂亮,怎么搞的
断剑重铸之日,骑士归来之时
|
云淡风轻0202 游士 经验值: 267 发帖数: 23 精华帖: 0 |
3楼 2018-09-06 10:07:55
主题:回复:使用C#+WPF做S7-1200上位机 大神!学习下!希望有朝一日也能有这个水准1
华丽地跌倒,胜过无谓地徘徊。
|
huanqiong 侠客 经验值: 965 发帖数: 15 精华帖: 0 |
4楼 2018-09-06 10:26:52
主题:回复:使用C#+WPF做S7-1200上位机
变量访问能符号导入导出就好了
Hello!
|
z100o 侠圣 经验值: 3003 发帖数: 455 精华帖: 0 |
5楼 2018-09-07 08:59:08
主题:回复:使用C#+WPF做S7-1200上位机
Automation
|
ewaew 游侠 经验值: 311 发帖数: 6 精华帖: 0 |
6楼 2018-09-07 10:06:24
主题:回复:使用C#+WPF做S7-1200上位机
现在很多面向管理层的软件,例如EMS啊,WMS啊,甚至MES(也是醉了),都使用.NET平台,微软现在出来一个.NET Core 可以跨平台 (Windows、Mac OSX、Linux)。这以后就是个趋势啊,毕竟.NET的实时性好啊。还可以用Blend画画面很好看的。关键是这些免费啊,就人工。B/S结构,也不用装什么组态软件。底层交互OPC UA(Kepware之类)。不过这都是用于中小企业啊,大的企业直接买西门子、AB、GE的平台。有很多功能可以不用开发,不过嘿嘿,不一定适用中国。
|
渔明鱼工 至圣 经验值: 23897 发帖数: 2059 精华帖: 78 |
7楼 2018-09-07 14:54:23
主题:回复:使用C#+WPF做S7-1200上位机 不错的贴子!
网鱼能够改善伙食,还能释放工作中的压力。
|
Siemens automation 奇侠 经验值: 5535 发帖数: 626 精华帖: 6 |
8楼 2018-09-07 15:27:31
主题:回复:使用C#+WPF做S7-1200上位机 |
sangshunyang 侠圣 经验值: 4091 发帖数: 565 精华帖: 4 |
9楼 2018-09-07 16:07:35
主题:回复:使用C#+WPF做S7-1200上位机 在网站没有找到 PLC通信的基础类库,谁找到了分享出来呗。C#能连接上S7-1200 1500,自己开发个小东西就好玩了。 |
liubo1975 至圣 经验值: 15669 发帖数: 644 精华帖: 0 |
10楼 2018-09-07 20:40:51
主题:回复:使用C#+WPF做S7-1200上位机
岂能尽如人意 但求无愧我心
|
无敌KK猫 游士 经验值: 210 发帖数: 3 精华帖: 0 |
11楼 2018-09-08 10:41:52
主题:回复:使用C#+WPF做S7-1200上位机 太厉害!学习学习! |
quiet 奇侠 经验值: 7585 发帖数: 1989 精华帖: 0 |
12楼 2018-09-09 10:31:44
主题:回复:使用C#+WPF做S7-1200上位机
大神厉害啊,大神有没有考虑转IT方向的工作呢,毕竟FA的待遇比IT差了好多。
|
ewaew 游侠 经验值: 311 发帖数: 6 精华帖: 0 |
14楼 2018-09-10 10:22:38
主题:回复:使用C#+WPF做S7-1200上位机 确实是,PLC也就那么一回事,个人不敢说什么精通,也设计加调试过上千万的项目。大家有机会还是转IT吧,公司一毕业一年的java15K。一直认为开源促进人类文明的进步,最佩服一些开源组织阿帕奇之类的,分享一些jar包,楼上就是一个开源网站,再分享一个nuget。上次记得有个朋友分享一个s7.net驱动,非常感谢。可笑的是,我发现只要一沾点工业,就有些人认为可有价值金贵得很。故步自封!是,有些工艺包确实有价值。在此感谢分享资料的人,论坛是个交流学习的地方,希望广告党好自为之!!! |
quiet 奇侠 经验值: 7585 发帖数: 1989 精华帖: 0 |
15楼 2018-09-10 14:22:50
主题:回复:使用C#+WPF做S7-1200上位机
我以前也回过一贴,还是那个观点,年轻人能到IT行业立足的,还是赶紧改行。那个帖子中还有人说什么情怀,爱好,这些能当饭吃,当房子住吗。打工的人难道多赚点工资不好吗。
|
gaofei2013 侠圣 经验值: 2865 发帖数: 367 精华帖: 3 |
16楼 2018-09-11 09:22:10
主题:回复:使用C#+WPF做S7-1200上位机 谢谢楼主,大家可以fork一下,一起完善 |
耀眼光芒 侠圣 经验值: 2331 发帖数: 382 精华帖: 3 |
17楼 2018-09-11 23:24:09
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 多谢提供项目,腾出功夫就看下。 这个通讯本质是tcp的S7协议,如果通讯正常则一切正常,建议将通讯单独放到一个线程里?或者更好的方式,这样拔网线或CPU重启都不会卡界面等问题,具体没有测试您的代码,不知道是否作了这样设计。 C#学习中……
工艺第一&
我所说的一切均代表个人意见
|
yzm_cumt 至圣 经验值: 18253 发帖数: 2653 精华帖: 14 |
18楼 2018-09-12 08:08:10
主题:回复:使用C#+WPF做S7-1200上位机(附上源码)
sometimes you have to be your own hero!
|
yecao2006 至圣 经验值: 18013 发帖数: 1524 精华帖: 2 |
19楼 2018-09-12 08:45:45
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 强文,值得推荐推广。
我回来了!继续努力!
|
Rossi84 侠圣 经验值: 3904 发帖数: 370 精华帖: 1 |
20楼 2018-09-12 16:22:34
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) @梦到内河 大侠,你这编译环境是哪个版本呢,我用Visual Studio 2010 打不开,
无法改变之前,努力改变之后
|
西南小霸王 侠客 经验值: 929 发帖数: 179 精华帖: 0 |
21楼 2018-09-12 16:41:22
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 工业很金贵,但也要看什么样的工业,我国的工业?没毕业之前厉害了我的国,毕业后厉害了你美国大爷
断剑重铸之日,骑士归来之时
|
ljch1978 侠圣 经验值: 2229 发帖数: 120 精华帖: 0 |
22楼 2018-09-15 10:03:03
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) |
gaofei2013 侠圣 经验值: 2865 发帖数: 367 精华帖: 3 |
24楼 2018-09-17 10:19:47
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 请问一下,有人用qt做过吗 |
ly7158 侠士 经验值: 1620 发帖数: 154 精华帖: 0 |
25楼 2018-09-17 11:36:03
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 看起来很厉害 |
而上。 侠士 经验值: 1255 发帖数: 77 精华帖: 0 |
27楼 2018-09-18 08:58:25
主题:回复:使用C#+WPF做S7-1200上位机(附上源码)
c+内容还在学习中,非常详细的说明了
|
sunnydragon 游民 经验值: 51 发帖数: 1 精华帖: 0 |
28楼 2018-09-18 21:04:32
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 感觉做的比wincc好看。。。 |
Cope 侠圣 经验值: 3008 发帖数: 294 精华帖: 1 |
29楼 2018-09-20 13:22:44
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) |
jianwei_linux 游民 经验值: 124 发帖数: 8 精华帖: 0 |
30楼 2018-09-21 17:27:12
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) |
RENHQ 至圣 经验值: 68883 发帖数: 12216 精华帖: 59 |
33楼 2018-09-26 00:02:51
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 很强大啊,感谢楼主分享
Q群:https://jq.qq.com/?k=9BDuEgf6
|
冬日 奇侠 经验值: 8530 发帖数: 3422 精华帖: 56 |
34楼 2018-09-26 21:58:51
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 我也在做,不过用的是winform,感觉这个比较好上手点,但是没有wpf做的漂亮。 搞工控出身半路出家的,做it好累,有机会互相交流。
If anything can go wrong, it will.
|
冬日 奇侠 经验值: 8530 发帖数: 3422 精华帖: 56 |
35楼 2018-09-26 22:12:08
主题:回复:使用C#+WPF做S7-1200上位机(附上源码) 大概看了下,楼主的数据好像是在后台的线程不停的刷新? 我也刚学.Net,大概知道wpf相比winform有几个很大的优点,一个是数据和前端低耦合,二是数据驱动而不是事件驱动,三是可以做到很漂亮……楼主这么做前面两个优势好像没有了。
If anything can go wrong, it will.
|