⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d174.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
    ItemArray【i】.szAccessPath=T20LE("RS ViewProj ectName”);
    /,RSViewProjectName为RSView32项目名称
    ItemArray[il.vtRequestedDataType =VT_R4;删改据项的数据类型(VT—R4表示浮点)
1
    ItemArray[Ol.szItemID =T20LE("AI\\KUANGSffl");//数据项”KUANGSHI”的标识
    ItemArray[ll.szltemID =T20LE("AI\LJIANFEN”);,,数据项”JIANFEN”的标识
    ItemArray[21.szItemID =T20LE("AO\\KUANGSffl”);//数据项”KUANGSH[”的标识
    ItemArray[3J.szItemID =T20LE("AOMANFEN");/,数据项”JIANFEN”的标识
hRet=ppUnknown->Querylnterface(IID_IOPCltemMgt,(void **)&pOPCItemMgt);
pOPCltemMgt->Addltems (ItemNumber,ltemArray,
    (OPCITEMRESULT**)&pItemResult,(HRESULT **)&pErrors);
    茌RSView32组态软件中,读取一个物理量的数据值时有一个标记(数据项),称为输
入量;改变该物理量时用另一个标记,称为输出量。因此,对一个物理量进行读和写两种操
作,就需要添加2个数据项。在这里,假设所有的输入量都保存在名为RSViewProjectName
的RSView32项目中的AI文件夹中,所有的输出量都保存在AO文件夹中,按照以上代码
初始化ItemArray结构数组后,ItemArray[0】和ItemArray [11分别为矿石和碱粉输入量的信息,
而ItemArray [2J和ItemArrayl3J分别为矿石和碱粉输出量的信息,共有4个数据项。
    10)读写数据。添加完数据项后,就可以用IOPCSyncl0接口的Read0和Write()方法进
行读写操作,为了匹配两种方法的参数,需要将添加结果传递给OPCHANDLE类型的变量
(前面已定义)。为了便于数据的读和写,将2个输入量和2个输出量的信息分别传递给两
个不同的OPCHANDLE类型的数组变量,代码如下:
    for(i=O;k2;1++)
    hServerAW =pItemResult[il.hServer;
    for(i=O;k2;1H)
    hS erverAO[i】=pltemResult[i+2] .hServer;
    这段程序执行的结果是:hServerAI[Ol和hServerAI[l]分别为矿石和碱粉输入数据项的
HANDLE,用来读数据;hServerAO[O]和hServerAO[lJ分别为矿石和碱粉输出数据项的
HANDLE,用来写数据。
    读写数据前,先用IUnknown接口的Querylnterface()方法请求IOPCSyncl0接口指针。
代码如下:
    ppUnknown->QueryInterface(IID_IOPCSynclO,(void **)&pOPCSync);
    从初始化COM库开始以上所有代码都可以添加到COPCClientDlg::OnInitDialog()中。根
据步骤2中应用程序的设计框架,读取矿石和碱粉两个数据值的程序代码要添加到“读取数
据”按钮的消息映射函数中,写操作代码要添加到“发送数据”按钮的消息映射函数中,所
以分别对IDC_READ和IDC_SEND添加针对BN_CLICKED事件的函数,并编辑诙函数。
174
void COPCClientDlg::OnRead()
{
             // TODO: Add your control notification handler code here
           int ItemNumber=2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -