首先打开PLC通信
pAddr = &Addr;
nPort = AdsPortOpen();//打开ADS通讯端口
nErr = AdsGetLocalAddress(pAddr);//自动获取本地地址
if (nErr)
{
QMessageBox::about(nullptr, "Warning", QString("Error: AdsGetLocalAddress: "));
}
else
{
qDebug()<<"AdsPortOpen Successfully" << '\n';
}
pAddr->port = 851;//TC3通讯使用的为851端口
再通过ADS读取Vision图像
CString ctrlText = "MAIN.ipImageInDisp_1";
CString strTemp = ctrlText + _T("#<<ITcVnBitmapExportRpcUnlocked>>GetBitmapSize");
USES_CONVERSION;
nErr = AdsSyncReadWriteReq(&Addr, ADSIGRP_SYM_HNDBYNAME, 0x0, sizeof(m_hGetBitmapSize), &m_hGetBitmapSize, static_cast<unsigned long>(strTemp.GetLength()) + 1, W2A(strTemp.GetBuffer()));
if (nErr)
{
qDebug() << "Error: AdsSyncReadWriteReq: " << nErr << '\n';
}
else
{
if (m_hGetBitmapSize != 0)
{
CString strTemp = ctrlText + _T("#<<ITcVnBitmapExportRpcUnlocked>>GetBitmapImageRpcUnlocked");
nErr = AdsSyncReadWriteReq(&Addr, ADSIGRP_SYM_HNDBYNAME, 0x0, sizeof