wincc连数据库读写数据操作

Option Explicit
Function action
Dim Cnn
Dim Rst
Dim strCnn
Dim M101
Dim IS_LACK
strCnn="DSN=myoracle;UID=platform;PWD=123456;DBQ=172.16.1.27:1521/MIDDB"
Set Cnn = CreateObject("ADODB.Connection")
cnn.ConnectionString = strCnn
Cnn.Open
Set Rst =CreateObject("ADODB.Recordset")
Rst.open "SELECT CUT_FLUID_TYPE,IS_LACK FROM LIQUID_SHORT where IS_LACK = 1 AND FLAG = 1  ",Cnn,2,2
HMIRuntime.Tags("CUT_FLUID_TYPE").Write Rst("CUT_FLUID_TYPE")
HMIRuntime.Tags("IS_LACK").Write Rst("IS_LACK")
Rst.close
Set Rst=Nothing
cnn.close
Set cnn=Nothing
Set IS_LACK = HMIRuntime.Tags("IS_LACK")
Set M101 = HMIRuntime.Tags("M101"
M101.Read
IS_LACK.Read
M101.Value = IS_LACK.Value
M101.Write
End Function


这段代码 把数据从数据库中读出来并写到PLC中已经没问题, 现在我的问题是 数据表中的FLAG 这个值 当我这行读完后我要把这个值改为2, 修改数据表值的代码为 UPDATE LIQUID_SHORT Set FLAG = 2  这里有2个问题要问 1:这句代码我要加在上面代码的哪个位置 ,我加在CNN2,2后面 编译直接报错。2:我要改的FLAG 只改我刚刚读的那一行即可,应该改为 UPDATE LIQUID_SHORT Set FLAG = 2 where 行=刚才那行 这个要怎么写

问题补充:
加到Rst.close前面 会报错,
另外有ID  ID为字符串格式,我在脚本内建 内部变量DIM aaa 让这个aaa等于刚才我读的那一行怎么写,还有 我要更新数据是 直接加条件 UPDATE LIQUID_SHORT Set FLAG = 2  where SN=aaa  这样写执行不下去

图片说明:

wincc连数据库读写数据操作    wincc连数据库读写数据操作   

最佳答案

和我用的这个方法不一样啊
1、应该加到Rst.close前面,写完PLC了在进行更新
2、表格里面有没有ID一列,用来标识每一行的唯一的标识符,如有的话,就加上where ID = 刚才读的那行的ID

补充:
我用过的操作数据库方式和你不同
给你几个文档参考一下:
WinCC数据开放性
https://support.industry.siemens.com/cs/cn/zh/view/78682604
在WinCC中如何使用VBS读取报警记录数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77938393
在WinCC中如何使用VBS读取变量归档数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77940055
通过VBS脚本在ListView控件中显示WinCC的变量记录
https://support.industry.siemens.com/cs/cn/zh/view/74932765
WinCC、Excel、VBA、脚本、连通性软件包
https://support.industry.siemens.com/cs/cn/zh/view/71676391
WinCC数据报表实现方法介绍
https://support.industry.siemens.com/cs/cn/zh/view/78668993

还有不明白的,可以在论坛发帖子

再补充,我以为你会用,看起来不是很会,在后面加入应该这样加啊
Rst.open "UPDATE LIQUID_SHORT Set FLAG = 2 ",Cnn,2,2
这个sql语句不一定对哈,直接复制您的,自己测试

提问者对于答案的评价:
非常感谢,我后来也是 不停的先 关闭表 再打开表这样操作,写变量为 " & V1 & " 要加双引号和 &

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc138934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月1日
下一篇 2017年6月1日

相关推荐

  • WINCC6.2与6.0有什么不同?

    具体一点 最佳答案 价格不同 提问者对于答案的评价:精辟 专家置评 数据库的差别是一方面,还有:运行系统中可以 用户自定义菜单和工具栏;借助新的“保存报表”功能,WinC…

    SIMATIC WinCC 2019年6月11日
  • 如何用全局脚本中的变量弹出警示窗口

    如何使用全局脚本中的“变量“”弹出警示窗口,wincc激活后,并该“变量”变为1时,需弹出警示窗口 问题补充:需在全局脚本下实现,如附件图片,如不屏蔽其会不断弹出窗口;“temp1…

    2021年7月5日
  • wincc历史数据设置

    wincc7.0SP1,要实现历史数据报表里面1分钟更新一次数据,一页显示60条数据,我这个设置里面哪里有问题? 图片说明:       &…

    2017年12月9日
  • MP277能否接热打印机?

    我现在想用MP277通过usb连接热打印机,打印我需要的一些参数、时间、产量什么的,不知能否实现,如何实现? 最佳答案 相关文档:《S7-212CPU和外部设备例如打印机的连接方法…

    SIMATIC WinCC 2019年6月11日
  • WINCC 7.4连接数量

    1台PC当做服务器,连接17个S7-1200,同时被17台PC客户端连接。1.这样方案是否可行?2.用PC的普通网卡是否可行?3.连接这么多数量的PLC,需要安装SIMAITC&n…

    2020年11月1日
  • 如何在博途上组态PC并将项目在PC上运行

    1.请问如何在博途上组态常规PC?2.组态完成后如何将项目转化为可执行文件在实际PC上运行?3.完成该操作需要具备什么条件,以及需要安装什么软件?我电脑目前已经安装了博途V16包括…

    SIMATIC WinCC 2021年7月5日
  • wincc中的VBA如何读取我在wincc设置的变量的值

    我要在wincc中的VBA编写程序,,需要读取wincc里面的变量的值,,可行吗,,有没有简单的例子程序 最佳答案 参考图片资料来自:WinCC、Excel、VBA、脚本、连通性软…

    2017年6月5日
  • 数据在TIA V15软件上做组态画面显示,设定的报警值推送到指定制定微信上

    数据在TIA V15软件上做组态画面显示,设定的报警值推送到指定制定微信上。博图有没有这个功能,能不能实现推送到微信这个功能,如何实现? 问题补充:客户提的要求,没做过这…

    SIMATIC WinCC 2021年7月5日
  • 已经移到根目录下

    step7安装时提示未找到SSF文件 最佳答案 安装路径(安装文件的文件夹)中不要有中文,一般不会有问题的。如果还不行就试试安装目录下step7文件夹里面的安装文件,如CD_1\S…

    SIMATIC WinCC 2019年6月11日
  • 字符串格式

    从温控表上读取温度值  格式是 字符串  所以上位机上显示出来温度值的经常会出现字母,而且温度设定值 也要求以字符串的格…

    SIMATIC WinCC 2019年6月11日