citect2018 cicode通过动作触发事件,向sql server添加记录

由于某浪博客一直不正常,售后也一直不相应我的求助,今后就在这里更新吧。

 

现场有这样一种需求:当布料小车停在某个储槽上方下料时,希望能够记录什么时间在什么储槽上方,便于查询。我先简化做了一个测试练习,现在把练习过程记录下来。

 

1. 建立数据库

在sql server新建一个数据库myDB。赋予数据库用户sa访问这个数据库的权限。数据库下新建一个表PositionRecord,表结构如下

myID为主键,递增。

保存新建的表。

 

2.新建ODBC连接mtRecord,指向刚才新建的sql数据库。

3.新建citect项目

4. 新建本地变量

5.新建画面,放置按钮和图形,按钮用于修改本地变量数值,模拟现场信号变化,图形用于观察变量变化效果。

6.新建cicode函数

FUNCTION P1record()
STRING myTime,Posidescrip;
myTime=Date(10)
Posidescrip="A313布料小车处于1#槽位"
INT hSQL;
STRING SqlAction;
SqlAction= "INSERT INTO PositionRecord(myTime,Posidescrip) VALUES ('" + myTime + "','" + Posidescrip + "')"
hSQL = SQLConnect("DSN=myRecord;UID=sa;PWD=sa");
IF hSQL <> -1 THEN
SQLExec(hSQL, SqlAction);
SQLDisconnect(hSQL);
END
END

FUNCTION P2Record()
STRING myTime,Posidescrip;
myTime=Date(10)
Posidescrip="A313布料小车处于2#槽位"
INT hSQL;
STRING SqlAction;
SqlAction= "INSERT INTO PositionRecord(myTime,Posidescrip) VALUES ('" + myTime + "','" + Posidescrip + "')"
hSQL = SQLConnect("DSN=myRecord;UID=sa;PWD=sa");
IF hSQL <> -1 THEN
SQLExec(hSQL, SqlAction);
SQLDisconnect(hSQL);
END
END

 

7.新建两个事件,通过触发执行事件

8. 编译。

9.设置计算机向导,允许运行期间执行这两个事件。

10.运行citect程序,点击按钮,使P1、P2置位。到sql server中查看PositionRecord表记录,可以看到新添加的记录。

 

posted @ 2021-03-02 13:05  来自金沙江的小鱼  阅读(790)  评论(1编辑  收藏  举报