使用SQL4Automation让CodeSYS连接数据库
摘要:本文旨在说明面向CodeSYS的数据库连接方案SQL4Automation的使用方法。
1.SQL4Automation简介
1.1.什么是SQL4Automation
SQL4Automation是一套工业用途的软件解决方案,它主要的功能就是为PLC和机器人控制提供数据库连接,它支持很多类型的PLC,其中也包括CodeSYS软PLC。SQL4Automation for CodeSYS包含一个CodeSYS库以及一套第三方的软件,SQL4Automation的软件部分包含一个服务和一系列的对该服务进行配置的前端软件,我们也可以越过前端软件直接通过配置文件使用它提供的服务。
1.2.为何使用SQL4Automation
目前在PLC开发中越来越多的使用到了信息即时入库操作,但是PLC编程体系的数据库使用场景并不如其他编程语言中的广泛,并且PLC编程有着面向厂家的局限性,因此并没像JDBC,MyBatis那样丰富的数据库连接方案即便捷框架,为了做到和数据库的通讯很多情况下需要开发人员自己封装协议然后使用ODBC,SQL4Automation对工业编程连接数据库的一系列操作定制了规范,并提供了相应的功能块和函数,简化了连接数据库的过程,便于程序的开发维护,同时也达到了程序和数据库具体品牌的解耦,只要面向SQL4Automation编程,在之后更换数据库就只是更换其服务配置文件中的ODBC即可,无需修改代码。
另外一方面是SQL4Automation是一个免费的平台,CodeSYS提供一个直接连接MySQL的库,使用这个库能直接让PLC不借助任何第三方服务的状态下自己连接MySQL数据库,但是它收费,价格是七百多,而且它只能连接MySQL数据库,对于一些国企或者重点工厂来说并不能满足项目的需求。
1.3.SQL4Automation的运行原理
我们首先看一下想要使用SQL4Automation都需要安装些什么东西:
1.CodeSYS中安装的SQL4Automation库
2.桌面控制软件
3.SQL4Automation服务
其中该连接服务是软件中自带的,在安装软件的过程中服务就会被注册,软件安装好后直接启动服务即可。
1.4.SQL4Automation运行结构
SQL4Automation的运行模式为:在PLC端通过SQL4Automation提供的库和SQL4Automation的服务通信,和SQL4Automation服务建立一个连接,PLC通过此连接将sql语句发送给服务,服务通过事先配置好的ODBC和数据库建立连接,并将获取到的PLC端服务发送给数据库,获得到数据库的反馈后再将该反馈发送给PLC端。可见SQL4Automation的服务想当于一个中间人,是一个跳板平台性质的东西,它是PLC和数据库之间的一个中转站,PLC是先将sql语句发送给它,然后SQL4Automation服务再将sql语句发送给数据库,反之亦然。
2.在SQL4Automation的安装和使用
1.Windows中的安装
1.进入SQL4Automation官网:https://www.sql4automation.com/en/home/
2.下拉到页面最下面点击下载
3.选择安装版本信息及个人信息
在这些内容填写完成之后就可以启动下载了。
4.安装
解压下载到的压缩包之后我们继续解压这个Windows的安装文件:
进入解压后的目录,我们根据自己的系统选择安装程序:
运行安装完毕之后,系统中就会自动出现该软件的连接服务以及上文中提到的三个软件。
5.为S4Connector服务配置目标数据库连接
打开桌面中的软件:S4A Config,进入到如下界面
如果系统中的服务处于运行状态的话,该前端控制台右上角标红的地方的Connect是可点击的,如果发现该按钮是灰色不可点击,请检查任务管理器中的服务,寻找S4Connector,将该服务打开即可。
之后我们点击Connect,界面左边的连接管理栏便可以使用了,我们点击New新建一个连接:
新建连接的界面如图所示:
需要我们手动配置的地方是图中用红框和蓝框标记的地方,其中红框标记的是该服务自身的IP端口信息,包括Ip信息和端口信息以及连接超时时间,在CodeSYS中设置这个IP和端口便可以连接到这个服务,而蓝色框标记的地方是配置数据库信息的地方,其中需要填写数据源,用户名和密码三项,数据源就是ODBC,如果当前系统中没有我们需要的数据源,我们可以直接点击右下角的ODBC admin进行配置。
6.配置数据源
点击ODBC admin之后我们会进入到系统的ODBC安装配置界面,需要注意的是ODBC我们需要提前准备好,ODBC是开放数据库连接,我们通过配置ODBC可以建立一个和数据库的连接,ODBC就是访问数据库的工具,我们可以理解为它是一种访问数据库的驱动。
进入到OBDC管理页面之后我们点击系统DSN,然后在该栏目下新增一个自己的ODBC。
点击添加后,就会立刻进入到ODBC选择的界面中,我们根据自己想要连接的数据库进行ODBC的选择,需要注意的是这里需要我们提前下载和安装ODBC,为了节约篇幅暂不介绍在系统中安装ODBC的方法:
选择好ODBC之后我们就会进入到一个配置ODBC连接的界面,填写好数据库的用户信息之后就制作好一个数据源了:
制作好的数据源会自动显示在Data source中,我们选择即可:
填写好下边的用户名和密码之后,即使不连接PLC,使用当前服务也可以直接从服务端连接数据库了,该软件提供一个测试工具用来测试服务和数据库的连通,就是这个之前下载好的这个软件:
需要注意的是在S4A Config中也能进入到这个软件中去,接下来我们测试数据库的连通性:
7.测试服务和数据库的连通性
首先点击License,为当前的连接获取证书:
在成功获取证书之后就可以连接数据库了:
在正式使用数据库做通信之前我们可以先检测一下数据库的连通性,在点击左下角的Test之后如果弹出了如图所示的弹窗,说明数据库连接确实可以用了,接下来我们可以放心测试:
点击Tools按钮下的S4AQuertTool或者直接从桌面图标进入测试工具:
测试工具如图所示,主要分为两个区域,一是书写SQL语句的区域,一是获取返回结果的区域:
我书写了一个测试用的SQL语句,点击Send之后成功获取到了返回,测试成功:
8.使用CodeSYS连接服务
我们首先需要为项目导入SQL4Automation为CodeSYS提供的服务连接库,在之前我们下载的安装包里已经提供了,如图所示:
解压之后我们就能够找到,将这个库安装到CodeSYS,然后添加到项目下即可:
想要使用CodeSYS连接服务我们首先需要实例化一个服务连接代码块,该对象在SQL4Automation提供的官方库中已经给出,名为fbSQL4Codesys
,实例化这个代码块时候我们便可以通过它连接数据库了,如图所示:
我们将其实例化并将其分配给一个任务:
之后我们书写它的调用逻辑,在如下代码中,会向数据库插入一条语句,我们运行起来测试一下:
我们向如图所示的库中插入数据,目前可见该库中没有任何数据:
向结构体中填充测试数据并触发程序执行:
在触发提交后我们点开服务的前端控制软件,会发现它已经接收到了我们的SQL请求:
在数据库中我们也发现了数据确实落库了:
2.Linux中的安装
在Linux中我们只能安装服务端,我们在解压完压缩包之后,会发现在目录中存在这样的一个文件:
我们也能从官网中下载Linux版本的其他安装文件,但是总体上的安装方式都是相同的,在解压Linux的压缩包之后,我们会找到这样的一个目录,执行其中的脚本S4AConnector-inst
就可以直接进行全部的安装。
在Linux中我们同样需要启动这个服务,我们使用指令:systemctl start S4AConnector
启动服务,启动服务之后我们使用指令:systemctl status S4AConnector
查看服务状态,如果如下图所示,则说明启动成功:
重点注意事项
需要注意的是在Linux版本中,该解决方案的操控仍然需要前端控制台操作,在Ubuntu或者其他的Linux操作系统中,安装SQL4Automation之后,桌面上都会出现和Windows中一样的三个工具的快捷方式,我们通过快捷方式能够打开一个和Windows中一样的界面,在有图形界面的系统中我们那样使用软件即可,但是在服务器中,我们没有图形用户界面,因此只能在配置文件中添加连接的信息,这个配置文件的默认路径为:/var/log/SQL4automation/config
:
我们查看其中的内容为:
理论上我们修改这里的配置信息就可以构建连接了,但是这里的密码等信息都是通过某种方式加密的密文,不能通过明文进行配置,并且当前也缺少服务端配置的资料,因此在服务端启动SQL4Automation还需要深入研究。
使用SQL4Automation让CodeSYS连接数据库的更多相关文章
- react+redux教程(八)连接数据库的redux程序
前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- winForm连接数据库(sqlserver2005)
帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...
- c3p0连接数据库的3种方式
c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...
- Java连接数据库的辣几句话
Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...
- 基础的jdbc连接数据库操作
首先我们知道在数据库中,我们可以直接写sql或者直接通过数据库工具操作数据,但是在java程序中我们是不能直接操作数据库数据的,所以这就引入了jdbc操作. 百度百科:JDBC(Java Data B ...
- Python 3.x 连接数据库(pymysql 方式)
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...
- JDBC连接数据库
JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...
- java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- 解决 PLSQL Developer无法连接数据库
问题:PLSQL Developer无法连接数据库 原因:PLSQL Developer不支持x64的Oracle客户端 解决方案:1.下载instantclient-basic-nt-12.1.0. ...
随机推荐
- Hyperf 接入阿里云ACM应用配置管理中心
参考: 阿里云文档:https://help.aliyun.com/document_detail/85466.html?spm=a2c4g.11186623.6.550.43cb42d4Af4Tu0 ...
- `<jsp:getProperty>`动作和`<jsp:setProperty>`动作的使用在一个静态页面填写图书的基本信息,页面信息提交给其他页面,并且在其页面显示。要去将表单元素的值赋值给Java
<jsp:getProperty>动作和<jsp:setProperty>动作的使用 1.<jsp:getProperty>动作 语法格式: <jsp:get ...
- JUC(3)
文章目录 1.集合类不安全 2.在高并发情况下arraylist()并不安全 3.高并发下set并不安全 3.测试map(高并发情况下出现问题) 1.集合类不安全 2.在高并发情况下arraylist ...
- windows下cmd补全键注册表修改
1:使用win+r打开 运行 控制台 2:输入 regedit 打开注册表 3:进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\ ...
- 驱动开发:内核层InlineHook挂钩函数
在上一章<驱动开发:内核LDE64引擎计算汇编长度>中,LyShark教大家如何通过LDE64引擎实现计算反汇编指令长度,本章将在此基础之上实现内联函数挂钩,内核中的InlineHook函 ...
- KMP算法,匹配字符串模板(返回下标)
//KMP算法,匹配字符串模板 void getNext(int[] next, String t) { int n = next.length; for (int i = 1, j = 0; i & ...
- Go语言核心36讲01
你好,我是郝林,今天我分享的内容是:0基础的你,如何开始入门学习Go语言. 1. 你需要遵循怎样的学习路径来学习Go语言? 我们发现,订阅本专栏的同学们都在非常积极的学习和讨论,这让我们非常欣慰,并且 ...
- .NET性能优化-使用内存+磁盘混合缓存
我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题: 我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗? 其实这个问题比较简单的是吧?Red ...
- 数电第11周周结_by_yc
Lab7_时序逻辑验证 一.简易电子时钟 功能描述: 设计一简易电子时钟,支持时.分.秒显示,其中HEX7-HEX6显示时,HEX5-HEX4显示分,HEX1-HEX0显示秒,假设进制为:18秒= ...
- APACHE快速安装流程梳理
操作参考教程:https://www.cnblogs.com/haw2106/p/9839655.html 快速安装开始: [环境配置1] yum -y install gcc gcc-c++ wge ...