摘要:本文旨在说明面向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连接数据库的更多相关文章

  1. react+redux教程(八)连接数据库的redux程序

    前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接 ...

  2. 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  3. winForm连接数据库(sqlserver2005)

    帮同学搞个课程设计winform连接sqlserver2005 具体方法: .添加App.config文件 2.在App.config文件中添加节点 <?xml version="1. ...

  4. c3p0连接数据库的3种方式

    c3p0连接数据库的3种方式,这里以mysql为例 1. 直接用set方法设置参数, 基本方法 ComboPooledDataSource dataSource = new ComboPooledDa ...

  5. Java连接数据库的辣几句话

    Java连接数据库的辣几句话 1.java连接Oracle数据库 使用以下代码三个步骤: 1.下载ojdbc.jar包并导入项目中.附下载地址:http://download.csdn.net/det ...

  6. 基础的jdbc连接数据库操作

    首先我们知道在数据库中,我们可以直接写sql或者直接通过数据库工具操作数据,但是在java程序中我们是不能直接操作数据库数据的,所以这就引入了jdbc操作. 百度百科:JDBC(Java Data B ...

  7. Python 3.x 连接数据库(pymysql 方式)

    ==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...

  8. JDBC连接数据库

    JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...

  9. java开发中JDBC连接数据库代码和步骤

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...

  10. 解决 PLSQL Developer无法连接数据库

    问题:PLSQL Developer无法连接数据库 原因:PLSQL Developer不支持x64的Oracle客户端 解决方案:1.下载instantclient-basic-nt-12.1.0. ...

随机推荐

  1. MinGW配置C语言编译器gcc和g++

    首先,在 https://sourceforge.net/projects/mingw/files/latest/download 下载安装MinGW,如下图所示: 点Installation-> ...

  2. python 基本使用 异常判断

    简单常用 isinstance 判断一个对象是否是一个已知的类型 arg=123 isinstance(arg, int) #输出True isinstance(arg, str) #输出False ...

  3. redis位图(bitmap)常用命令的解析

    描述   bitmap是redis封装的用于针对位(bit)的操作,其特点是计算效率高,占用空间少,常被用来统计用户签到.登录等场景 常用命令及解析 常用命令 setbit key offset va ...

  4. Azure DevOps Server 设置项目管理用户,用户组

    一,引言 Azure DevOps Server 搭建完成后,关于如何进行项目管理,项目成员管理等,我们接着上一篇文章,继续讲解 Azure DevOps Server 的用户,用户组.首先,我们需要 ...

  5. Redis Cluster 数据分片

    介绍 Redis Cluster Redis 集群是 Redis 提供的分布式数据库方案, 集群通过分片(sharding) 来进行数据共享, 并提供复制和故障转移功能. 节点 一个 Redis 集群 ...

  6. vulnhub靶场之Beelzebub

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Beelzebub: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com ...

  7. Vue3 企业级优雅实战 - 组件库框架 - 4 组件库的 CSS 架构

    在前一篇文章中分享了搭建组件库的基本开发环境.创建了 foo 组件模块和组件库入口模块,本文分享组件库的样式架构设计. 1 常见的 CSS 架构模式 常见的 CSS 架构模式有很多:OOCSS.ACS ...

  8. C#使用最小二乘法对多个离散点进行圆拟合

    /// <summary> /// 最小二乘法拟合圆,计算拟合圆半径和拟合圆圆心 /// </summary> /// <param name="points& ...

  9. RabbitMq消息手动应答、放回队列重新消费、设置队列消息持久化、分发模式

    RabbitMq消息手动应答,放回队列重新消费,设置队列消息持久化 消息应答 概念 消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况. ...

  10. 安卓APP和小程序渗透测试技巧总结

    安卓APP和小程序渗透测试技巧总结 免责声明: 安卓7以上抓取https流量包 证书信任 首先安装OpenSSL,此步骤不再赘述,可以参考百度. 然后安装模拟器(我使用的是夜神模拟器). 导出需要的证 ...