#include "stdafx.h" using namespace std; void main() { USHORT nAdsState; //包含PLC的信息 USHORT nDeviceState = 0; long nErr, nPort; char ch; void *pData = NULL; AmsAddr Addr; PAmsAddr pAddr = &Addr; //建立接口通讯连接 nPort = AdsPortOpen(); nErr = AdsGetLocalAddress(pAddr); if (nErr) cerr << "Error: AdsGetLocalAddress: " << nErr << '\n'; pAddr->port = 851; //输入控制命令 cout << "(R) -> PLC Run\n"; //输入'R'启动PLC cout << "(S) -> PLC Stop\n"; //输入'S'停止PLC cout.flush(); ch = getchar(); ch = toupper(ch); //根据输入指令改变PLC的状态 while ((ch == 'R') || (ch == 'S')) //实现循环控制 { switch (ch) { case 'R': nAdsState = ADSSTATE_RUN; break; case 'S': nAdsState = ADSSTATE_STOP; break; } nErr = AdsSyncWriteControlReq(pAddr, nAdsState, nDeviceState, 0, pData); if (nErr) cerr << "Error: AdsSyncWriteControlReq: " << nErr << '\n'; cin.ignore(); ch = getchar(); ch = toupper(ch); } //关闭端口通讯 nErr = AdsPortClose(); if (nErr) cerr << "Error: AdsPortClose: " << nErr << '\n'; }