组态王从数据库得到值,可以复制给I/O变量,并使用吗?

我需要用组态王,和两个数据库关联,一个数据库只供组态王读取数据,另一个数据库只需要写入,读取的数据库数据由其他程序提供内容,我如何能将读取到的数据,赋值给I/O变量?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
组态王的帮助里,写得很清楚,图文并茂,很容易就懂的
/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
结构变量的定义
要使用结构变量,首先需要定义结构模板和结构成员及属性。
在组态王工程浏览器中选择数据库下的结构变量,如图1所示,双击右侧的提示图标,进入结构变量定义对话框,
如图2所示。
图1
选择定义结构变量
图2
结构变量定义对话框
在结构变量定义对话框中有“新建结构”、“增加成员”、“修改”、“删除”几个功能。如一个储料罐具有压力、温度、物位、上限报警、下限报警等几个参数,下面以此为例来说明组态王中结构变量的定义和使用过程。
新建结构:增加新的结构。单击<新建结构>按钮,弹出结构变量名输入对话框,如图所示。输入结构变量名称,单击<确定>按钮,在结构变量树状目录中显示出用户定义的结构模板。
注意:结构模板的名称和成员的名称首字母不能为数字,中间不能包含空格。命名要符合组态王变量命名规则。
如在结构名称输入对话框中输入“储料罐”,单击确定按钮,关闭对话框,则在结构变量定义界面上增加了一个新的结构,如下图所示。按照上述方法,可以建立多个结构。
增加成员:选中一个结构模板,如上图所示,单击<增加成员>按钮,弹出新建结构成员对话框,如下图所示。
该对话框与组态王基本变量定义属性对话框相同,用户在这里可以直接定义结构成员的各种属性,如基本数值属性、IO属性、报警属性、记录属性等。在成员名编辑框中输入成员名称。然后单击成员类型列表框,选择该成员的数据类型。另外,如果用户定义了其它结构模板,并且其它结构模板下定义了结构成员,那么,其它结构模板的名称也会出现在数据类型中,用户可以选择结构模板作为数据类型,将其嵌入当前结构模板中,如下图
所有属性定义与基本变量属性定义相同,这里不再细述。定义完毕后,单击<确定>按钮,关闭对话框。
按照上述方法,可以将其它成员加入到成员列表中来。定义完成后,如下图所示。如果此时确定完成,单击对话框上的“确定”
按钮,关闭对话框。
编辑:可以编辑结构模板和结构模板成员
编辑结构模板:选中一个结构模板,单击<编辑>按钮,可以编辑结构模板名称。
编辑结构模板成员:选中一个结构成员,单击<编辑>按钮,可以编辑其成员名称、成员类型。修改成员的属性并确认后,系统会出现如下图所示的提示框,提示是否将当前成员属性的修改应用到已定义的结构变量和引用该结构的结构中,如果确认修改全部相关属性,选择"是";如果只修改当前的成员的属性,选择"否"。
定义完成后,单击<确定>按钮,关闭对话框。
注意:在下列情况下,结构模板或成员不能被编辑。
1.
要编辑的结构模板被其他模板成员引用,且引用结构模板的模板定义了结构变量。
2.
要编辑的结构模板已定义结构变量,且该结构变量已被使用(画面,命令语言等)。
3.
要编辑的结构模板成员对应的结构模板被其他结构模板成员引用,而且引用结构模板的结构模板定义了结构变量。
4.
要编辑的结构模板成员对应的结构模板已定义了结构变量且结构变量已被使用(画面,命令语言等)。
5.
具有嵌套结构的结构模板成员。如下图中储料罐A下的压力。
6.
当结构模板成员类型为其他结构模板时,结构模板成员的类型不能编辑。如下图中储料罐A下的压力A。
删除结构模板或成员:选择一个结构模板或成员,单击<删除>按钮。
注意:在下列情况下,结构模板或成员不能被删除。
1.
要删除的结构模板被其他模板成员引用
2.
要删除的结构模板已定义结构变量
3.
要删除的结构模板成员对应的结构模板被其他结构模板成员引用
4.
要删除的结构模板成员对应的模板已定义结构变量
参见...
什么是结构变量
结构变量的使用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-25
IO变量值=组态王绑定列表里变量的值;这样不就行了么?
“读取的数据库数据由其他程序提供内容,”你读取数据库的数据,不是通过组态王直接连数据库连的么?追问

是啊,除了access数据库,组态王还可以和其他的数据库连接吗?
要是我有几万个变量,这么一个一个关联,岂不是……………^_^

追答

其他数据库也可以啊,它就是用绑定列表的,没有什么简便办法吧,大工程做起来是比较枯燥了。。

追问

谢谢了,估计这样估计要死人的,呵呵呵,有幸做好这样打工程,我也愿意牺牲了

第2个回答  2012-05-18
使用组态王的SQL函数从给定数据库读入,再赋值给给I/O变量追问

我可以做到组态王和数据库连接上,可是用什么办法吗,将读到的值赋值给变量呢?
能不能说详细点啊,谢谢了,能解决就加分哦

追答

使用SELCET 语句吧,

SQLSelect()
访问数据库,得到一个特定的选择集。选择集中的记录可以由SQLFirst(), SQLNext(),
等函数访问。使用格式如下:
[ResultCode=]SQLSelect(DeviceID,"TableName","BindList",
"WhereExpr","OrderByExpr");
参数:
DeviceID:SQLConnct()产生的连接号。
TableName:表格名称。
BindList:记录体。
WhereExpr:指定函数起作用行的条件。注意:如果列名是字符串,表达式必须在单引号中。
在BindList:记录体可以把自己定义的组态王变量与数据库里的字段联系起来,你试一下吧。
当记录体里的变量衩赋值后,可以再转给其它的变量。如果数据库中记录数比较多的好,可以使用WHILE循环来做程序。

本回答被提问者采纳
第3个回答  2012-05-20
表关注