技术论坛

 让西门子S7-1200直接连接MySQL数据库!!!

返回主题列表
作者 主题
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
楼主    2019-08-19 09:24:39
主题:让西门子S7-1200直接连接MySQL数据库!!! 精华帖 

最近项目上有个需求,要把采集的数据存储到数据库中,当前西门子有很多方法,必读IDB,还有通过WINCC的脚本,第三方的软件等等,但是随着发展,有些需求希望设备直接到数据库,比如云端的RDS,可能现场不会有专门的电脑或者触摸屏用来运行脚本或者程序。那就需要PLC直接写入数据库。

      家里搭建了一套S7-1200,在电脑上装了个MySQL的数据库,经调试,已经完成SHA1校验、MySQL三次握手、切换数据库、写入数据库这几个功能,上图:









      因为通信还有点问题,待后续完善一下之后会把源文件共享给大家,希望做成一个开源的库文件,供大家使用。


最近出图纸,还没时间完善,先打了个包,给大家发出来,可以到Github上拉代码。

https://github.com/HuaGong/uMySQL.git



更新了一个自认为可以使用的版本,可以到Git上下载,论坛附件上传不了,先贴几个图









原文件超出大小,各位到Git上下载,或者联系我微信索取,

13952850491  华文博。

Git:https://github.com/HuaGong/uMySQL.git

已经测试过S7-1500可用,S7-1200可用,1500实际项目中在用,马上发现有什么问题再告知大家!




2020年10月9日

最近更新了一下版本:

1、修正了初次连接后再次连接失败的部分情况

2、增加了数据库字段中有中文的问题

3、源文件中增加了测试程序、测试程序附带数据库备份、说明文件等。

更新的文件太大无法上传,可以找我要或者到GitHub下载,地址不变

Git:https://github.com/HuaGong/uMySQL.git




2020年10月12日

有人反馈Git下载比较慢,放到百度网盘,链接给大家

链接:https://pan.baidu.com/s/11Gxb5X7E_TUp0wBBcE6XZw 

提取码:mrit 



我是个愚笨的人……
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
1楼    2019-08-19 09:43:51
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

操作视频大了点上传不了,有兴趣的可以到我网盘下载动画。

https://pan.baidu.com/s/1rNcEPaRNO5L_uaPPeU4Eog

我是个愚笨的人……
龙云浪子
奇侠

经验值: 8435
发帖数: 870
精华帖: 8
2楼    2019-08-19 09:46:17
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!
不明觉厉,火前留名。
个体职业者。
天芯
至圣

经验值: 18638
发帖数: 2092
精华帖: 0
3楼    2019-08-19 09:47:36
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 期待哦。。。。。

不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
4楼    2019-08-19 10:23:15
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

感谢分享。

邮箱 yongquancun@126.com
黑猫警长W
至圣

经验值: 18280
发帖数: 2393
精华帖: 1
5楼    2019-08-19 10:41:45
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 试验架构不错。。。

白白白开水
游士

经验值: 179
发帖数: 8
精华帖: 0
6楼    2019-08-20 15:41:18
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

之前用上位机 通过VB 写的 在转数据库  如果直接1200 访问数据库  那就太好了

楼前
奇侠

经验值: 5310
发帖数: 551
精华帖: 0
7楼    2019-08-20 16:05:40
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

论坛就是牛人多

gaofei2013
侠圣

经验值: 2865
发帖数: 367
精华帖: 3
8楼    2019-08-21 00:43:26
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


请问楼主你是通过TCPIP直接明文发送sql语句吗?

WOWUWUWU
至圣

经验值: 10349
发帖数: 1791
精华帖: 0
9楼    2019-08-21 05:50:26
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!
谢谢分享,长知识了。
www123456
至圣

经验值: 12226
发帖数: 2431
精华帖: 86
10楼    2019-08-21 06:56:30
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!
利用开放的TCP/IP协议发送接收MySQL的连接报文,数据,校验码,程序相当于与sql的数据交换接口库文件,简洁高效。相比利用中间转换软件IDB,OPC等又多了一种与上层MES/ERP系统直接交换数据的方法,如果做成库,很适合自动化人员与IT系统连接交换数数据。
另外,利用wireshark网络封包分析软件也是分析各种数据交换协议的好工具,比如S7协议,还能了解很多经过封装的PDU自动化数据包内部结构,以后编程,诊断都有很高的价值。
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
11楼    2019-08-21 09:33:54
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

是的,关键是认证过程,认证完成之后就只要发明文就可以了,就是怎么拼字符串的问题了

我是个愚笨的人……
烟民
侠圣

经验值: 2307
发帖数: 77
精华帖: 3
12楼    2019-08-21 13:38:16
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

牛人,期待库文件。

学海无涯
各执一词
侠士

经验值: 1289
发帖数: 106
精华帖: 0
13楼    2019-08-21 16:15:13
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

厉害,我折腾OPC写数据库都搞不通。。。。。。。。

好灰尘
游士

经验值: 231
发帖数: 15
精华帖: 0
14楼    2019-08-21 16:45:47
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

厉害了!!

liubo1975
至圣

经验值: 15669
发帖数: 644
精华帖: 0
15楼    2019-08-22 14:46:53
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

厉害   谢谢分享

岂能尽如人意 但求无愧我心
Dvkl
侠士

经验值: 1595
发帖数: 284
精华帖: 0
16楼    2019-08-22 16:33:08
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

楼主v5,期待开源

王先1
侠客

经验值: 623
发帖数: 20
精华帖: 0
17楼    2019-08-22 17:28:41
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


正式在研究数据库存储

shine
至圣

经验值: 19949
发帖数: 8944
精华帖: 39
18楼    2019-08-23 15:35:10
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

1200的内存够用吗?

中间加一个类似 树莓派 之类的 我觉得整个的难度会降低,成本增加也不多

无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
19楼    2019-08-24 04:38:04
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

那就失去了意义

我是个愚笨的人……
Ready_OK
至圣

经验值: 15529
发帖数: 1735
精华帖: 0
20楼    2019-08-24 09:20:24
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 谢谢分享,长知识了,为牛人点赞!

海纳百川,厚德务实!
gaofei2013
侠圣

经验值: 2865
发帖数: 367
精华帖: 3
21楼    2019-08-24 12:20:09
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!
为什么很少人对本贴提出问题或者更好的思路呢?
yecao2006
至圣

经验值: 17887
发帖数: 1523
精华帖: 2
22楼    2019-08-25 14:02:07
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

很好的分享,谢谢。

我回来了!继续努力!
shanmin
侠圣

经验值: 2403
发帖数: 287
精华帖: 2
23楼    2019-08-25 15:01:43
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

楼主你这样写不是要把连接mysql的过程所使用的报文都研究个遍?太不容易了,指挥PLC干这这个……果断关注了,其实不一定要等最终成果都整出来再分享,过程中就可以拿出来,一起想办法,人多力量大啊

www123456
至圣

经验值: 12226
发帖数: 2431
精华帖: 86
24楼    2019-08-25 17:58:51
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!
plc与数据库的连接及交换数据要经过OSI模型的传输层、会话层、表示层和应用层,层层封装,每个层都要编写报文,可能还有数字签名等安全认证协议,工作量确实很大,相当于给plc做了数据库接口,凭一己之力很难,不妨大家感兴趣的一起研究。
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
25楼    2019-08-27 21:31:32
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

打了个包,给大家发出来,可以到Github上拉代码。

https://github.com/HuaGong/uMySQL.git

我是个愚笨的人……
手机用户20190821978102
新手

经验值: 48
发帖数: 1
精华帖: 0
26楼    2019-08-28 13:56:17
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 楼主这个会不会漏数据啊,PLC的能力会不会太有限?

无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
27楼    2019-08-28 15:51:17
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

这样的问题试过才知道,大家也多多测试,有问题反馈给我改进,如果有大神帮忙改了的,GitHub上给我或者联系我都可以。

13952850491,微信同号

我是个愚笨的人……
gaofei2013
侠圣

经验值: 2865
发帖数: 367
精华帖: 3
28楼    2019-08-28 16:30:09
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

请问楼主你在mysql中配置了哪些数据和表有哪些内容?最好把这些配置一起发布,我们好进行测试。

大梁山
侠客

经验值: 639
发帖数: 6
精华帖: 0
29楼    2019-08-28 16:40:02
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


厉害,好好学习一下

张晓甜
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
30楼    2019-08-28 19:38:16
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

我在新建了一个test数据库,然后建立了一个hist表,表内结构如图




我是个愚笨的人……
Nightwish2008
游侠

经验值: 444
发帖数: 34
精华帖: 0
31楼    2019-09-08 15:08:15
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

这个必须要记号一下。感谢楼主的分享精神

keep moving
NOT艺术
侠客

经验值: 637
发帖数: 35
精华帖: 0
32楼    2019-09-10 18:22:20
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

留下脚印,带以后归来

zhangcc1978
游侠

经验值: 464
发帖数: 10
精华帖: 1
33楼    2019-09-13 18:22:09
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

楼主大作,非我能及,为楼主加油

lfduan
侠客

经验值: 758
发帖数: 41
精华帖: 3
34楼    2019-09-13 23:13:32
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


期待进一步更新。


威师爷
至圣

经验值: 37384
发帖数: 5126
精华帖: 47
35楼    2019-09-13 23:33:19
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

OPC UA能解决问题不?

工业起重机防摇摆 QQ:404136820 AntiSwayControl
niaohqing
游民

经验值: 123
发帖数: 4
精华帖: 0
36楼    2019-09-26 13:11:25
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


厉害了,大侠

贤贤易色
奇侠

经验值: 8061
发帖数: 1305
精华帖: 6
37楼    2019-09-26 16:02:02
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


收藏了 还可以这样!!!!!!!

养活一团春意思,撑起两根穷骨头
ZXC2011
侠圣

经验值: 3032
发帖数: 496
精华帖: 8
38楼    2019-09-28 11:05:15
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


这个是我一直在关注的,外国youtube上老早有人做的,甚至我知道至少有三个公司,pdsql/plc2sql还有一个我想不起名字了,在卖这样的基于1200/1500的FB,授权和序列号绑定的,1份runtime要卖129/199欧。

只能说你太牛逼了。

我贴一份别人的标准使用说明上来,希望对你有启发。

https://plcdirectsql.com/en/support/PDSql_Library_User_Guide_V1.2.0.pdf

天芯
至圣

经验值: 18638
发帖数: 2092
精华帖: 0
39楼    2019-09-28 13:15:14
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


天啦,楼主无私

之乎者也?
游民

经验值: 144
发帖数: 13
精华帖: 0
41楼    2019-12-16 10:10:48
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 

废话不说 收藏一波

碎梦尘封
游侠

经验值: 422
发帖数: 56
精华帖: 1
42楼    2019-12-21 13:48:37
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

@无心打扰,你好。

看到你以前得一个关于WEB页面数据刷新的帖子,具体怎么做的能分享一下源文件吗?

我一个客户要求在他的中控室的电脑上显示和操作1200PLC的数据。因为电脑上有原来的工控软件,我不想给他装其他的,就想用博图的WEB来实现。现在数据显示和操作都可以了,就是提交的时候整页刷新很不友好。

希望能得到您的帮助。谢谢

我的邮箱13954195428@139.com

我的微信、手机、邮箱都是一个手机号

ransad
侠客

经验值: 632
发帖数: 166
精华帖: 0
45楼    2020-01-02 16:58:56
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!



论坛牛人就是多

不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
46楼    2020-02-10 09:15:56
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

让下位机做上位机的事

邮箱 yongquancun@126.com
乡长.
游侠

经验值: 537
发帖数: 76
精华帖: 0
47楼    2020-02-14 13:06:25
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


高大上,学习了

周杰伦
至圣

经验值: 13738
发帖数: 2031
精华帖: 16
48楼    2020-02-26 15:00:04
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

https://plcdirectsql.com/en/

这个要收费。

工控毁我青春!
wayneleeeeeeeeee
侠客

经验值: 712
发帖数: 6
精华帖: 1
49楼    2020-03-03 09:31:14
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 等我先学学基础知识再来搅和

四宝山张学友
Hushuguo
奇侠

经验值: 6586
发帖数: 393
精华帖: 2
52楼    2020-04-10 08:24:42
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

很感兴趣,有空我仔细研究学习下,给楼主点个赞

觅渡
新手

经验值: 23
发帖数: 1
精华帖: 0
53楼    2020-04-10 15:31:29
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

友情帮顶!华工牛批!

SuperTai
游侠

经验值: 525
发帖数: 22
精华帖: 0
57楼    2020-04-17 14:07:57
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

?4.11号看到了帖子,目前为止终于测试成功,感谢楼主分享,也和同我一样的零基础小白分享下过程:

1 从github下载了文件,发现是V15.1的,先去下载了博图软件,

2 看说明文件,需要用数据库软件,又去下载了MYSQL,结果下载了几十MB的小文件,不能用,最终找到https://dev.mysql.com/downloads/windows/installer/8.0.html,下载那个398MB的文件,才能用。

3 mysql安装软件过程,根据网上的安装教程安装完毕,创建了数据库密码,端口号默认3306。

4 根据PDF教程,创建了用户plc,密码root,并勾选了权限。

5 在PLC侧,设置remoteIP地址为电脑地址,端口号默认3306,。

6 网上查询了如何用Navicat,创建了数据库book

7?数据库连接connect指令管管脚替换为账户‘plc',密码'root',数据库‘book’

8 测试连接情况,是能连接指令,无法连同,通过上网查询,将MYSQL重装,重装过程中,密码校验界面选择第二个选项,native password。

9 网上查询mysql通讯协议,了解了要三次握手建立TCP/IP,4次挥手断开连接,逐句逐句的看楼主的SCL程序。

10 根据测试程序块中的 wstring内容,并查看了数据库指令,了解了“INSERT INTO ...”是数据库写入指令,根据写入指令的结构,在数据库侧建立表plcdata,在表plcdata下,建立T1~T5(bouble 类型,长度4,小数3)T6~T8(INT 类型),T9 T10(bit 类型)几个列。

11 激活写入指令,发现报错,根据报错代码查到是找不到数据库,怀疑发送的指令是不是有问题,于是查到可以用抓包工具wireshark可以抓包看TCP通讯过程,于是下了软件找了使用教程,开始抓包,发现通讯协议没问题。

12另从网上百度找问题,其中有解释说需要连接下数据库,于是使用MYSQL-use指令,再次连接了book数据库,然后再激活发送数据指令,报错换成了 T1数据长度错误,于是把数据库book下plcdata的列T-~T5长度改为10,再次发送指令,查了下如何用Navicat查看数据内容,然后确认确实写进来了数据。

以上是一个通讯小白的过程,对楼主的程序佩服的五体投地,为我打开了一扇新的大门,通讯没有以前那么神秘了,非常感谢楼主的分享,楼主的一些编程技巧对我很受启发。

书山有路,学海无涯。
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
60楼    2020-04-29 16:10:53
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

最近发现MySQL语句拼接有些问题,其中字符串的Connect指令,默认长度是256个字符,所以如果命令长度超出,命令行会不完整,所以拼接字符串需要通过DB块完成,大家测试的时候注意。

我是个愚笨的人……
fxx8183
侠客

经验值: 914
发帖数: 36
精华帖: 1
61楼    2020-04-30 13:05:36
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

不明觉厉,火前留名。

以后要成为IT了

sosoo
新手

经验值: 47
发帖数: 2
精华帖: 0
62楼    2020-05-03 13:49:17
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


楼主真的很牛,感谢无私分享!!!


一串奇怪的数字
侠士

经验值: 1325
发帖数: 114
精华帖: 4
64楼    2020-05-15 09:46:44
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


  ,正好有类似需求,学习一下。

人生没有边界,一切皆有可能。
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
65楼    2020-05-15 22:38:18
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

说明书更新了一下,有超出论坛大小限制发不出来,有需要的可以联系我,另外实际测试的效果给大家看看,每秒存一次,已经到38万条。



我是个愚笨的人……
militia
游民

经验值: 143
发帖数: 40
精华帖: 1
66楼    2020-05-18 11:37:42
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

给楼主赞一个!


另外Github的代码管理建议考虑一下TIA Portal V16自带的VCI功能 (Version Control Interface)

可以手动安装Git程序来管理,也可以用西门子官方提供的VCI add-in


https://support.industry.siemens.com/cs/us/en/view/109773999


Motion_Control
Dvkl
侠士

经验值: 1595
发帖数: 284
精华帖: 0
67楼    2020-05-19 08:44:51
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

西门子官方也出了个plc操作SQL Server的库,以后不学点计算机混不下去了。

笨笨笨笨
奇侠

经验值: 7102
发帖数: 1022
精华帖: 2
68楼    2020-05-19 09:09:58
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


大神,支持下

心有多远路就有多远
元顺
游士

经验值: 200
发帖数: 3
精华帖: 0
69楼    2020-05-25 16:34:36
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

 测试的时候发现,如果断开网线再重新插上,有的时候能继续写入数据库,有的时候数据库就断开连不上了

xdpcxq
新手

经验值: 48
发帖数: 11
精华帖: 0
70楼    2020-05-25 20:20:37
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

学习一下,楼主牛!

手机用户20191031620V0J
游民

经验值: 74
发帖数: 2
精华帖: 0
71楼    2020-06-02 14:49:44
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


牛人不明觉厉

你好西西,我的麦克。
无心打扰
侠圣

经验值: 2087
发帖数: 358
精华帖: 4
72楼    2020-06-19 08:19:39
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

今天看到西门子也出了PLC直接连接MS SQL的东西,挺好的,可能我可以安心的关帖了,https://support.industry.siemens.com/cs/document/109779336/connecting-an-s7-1500-to-an-sql-database-?dti=0&pnid=13613&lc=en-CN

我是个愚笨的人……
jfb20001996
新手

经验值: 43
发帖数: 1
精华帖: 0
73楼    2020-06-22 10:00:09
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


真是可以学习了,这个比较有用


工控小凌
游民

经验值: 118
发帖数: 7
精华帖: 0
74楼    2020-07-03 16:24:24
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

厉害,学习了

手机用户20200325865457
游民

经验值: 110
发帖数: 21
精华帖: 0
75楼    2020-07-07 15:31:05
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

我也在看这个东西,刚开始做,刚刚开始了解mysql协议,在看sha1校验,估计就能握手成功了

clxering
新手

经验值: 18
发帖数: 1
精华帖: 0
76楼    2020-07-14 18:37:50
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


厉害,学习了

youhun1hao
游民

经验值: 79
发帖数: 4
精华帖: 0
77楼    2020-07-21 14:08:37
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

直接通讯确实来的方便,效率也高。就是可靠性不知如何

艾马尔
侠圣

经验值: 4362
发帖数: 665
精华帖: 0
79楼    2020-07-25 08:54:57
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!

单位里面有SQL与PLC数据交互,但一直没能搞清楚!

云仙0216
游民

经验值: 92
发帖数: 6
精华帖: 0
81楼    2020-08-11 10:54:45
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


感谢分享,膜拜!

CCC@CCC
侠士

经验值: 1746
发帖数: 379
精华帖: 0
82楼    2020-08-12 15:39:46
主题:回复:让西门子S7-1200直接连接MySQL数据库!!!


楼主真厉害,果断收藏

路漫漫其修远
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。