用C++; < >我使用CoDysS的一个库,用C++程序编写变量到PLC。
这是我向PLC写入数字的方式:用C++; < >我使用CoDysS的一个库,用C++程序编写变量到PLC。,c++,plc,C++,Plc,这是我向PLC写入数字的方式: void PLCconnection::WriteVariable(int a_value, int a_listPosition) { unsigned long ulStart; PlcSymbolDesc *pSymbols; unsigned long ulNumOfSymbols = 0; int iNumOfVars = 28; int i; char **ppszVars = new char*[iNu
void PLCconnection::WriteVariable(int a_value, int a_listPosition)
{
unsigned long ulStart;
PlcSymbolDesc *pSymbols;
unsigned long ulNumOfSymbols = 0;
int iNumOfVars = 28;
int i;
char **ppszVars = new char*[iNumOfVars];
for (i = 0; i < iNumOfVars; i++)
ppszVars[i] = new char[255];
long lResult = RESULT_FAILED;
lResult = pPLCHandler->GetAllItems(&pSymbols, &ulNumOfSymbols);
if (lResult == RESULT_OK)
{
strcpy(ppszVars[0], pSymbols[a_listPosition].pszName); //getting the variable name
//ppszVar;
/* Write variables value to check, if variables can be written */
unsigned char **ppbyValues = new unsigned char*[2];
ppbyValues[0] = (unsigned char *)new unsigned long;
*(unsigned long *)ppbyValues[0] = a_value;
ulStart = CAL_SysTimeGetMs();
if (pPLCHandler->SyncWriteVarsToPlc(ppszVars, 1, ppbyValues) == RESULT_OK)
{
//writing succeeded
}
else
{
//writing failed
}
delete ppbyValues[0];
delete[] ppbyValues;
}
else
{
// Couldn't retrieve symbols
}
for (i = 0; i < iNumOfVars; i++)
delete[] ppszVars[i];
delete[] ppszVars;
}
void PLCconnection::WriteVariable(int a_值,int a_列表位置)
{
无符号长ulStart;
PlcSymbolDesc*符号;
无符号长符号=0;
int-inumovars=28;
int i;
字符**ppszVars=新字符*[iNumOfVars];
对于(i=0;iGetAllItems(&pSymbols,&ulNumOfSymbols);
如果(lResult==结果_正常)
{
strcpy(ppszVars[0],pSymbols[a_listPosition].pszName);//获取变量名
//ppszVar;
/*写入变量值以检查是否可以写入变量*/
无符号字符**ppbyValues=新的无符号字符*[2];
ppbyValues[0]=(无符号字符*)新的无符号长字符;
*(无符号长*)ppbyValues[0]=一个_值;
ulStart=CAL_SysTimeGetMs();
if(pPLCHandler->SyncWriteVarsToPlc(ppszVars,1,ppbyValues)==RESULT\u确定)
{
//写作成功
}
其他的
{
//写作失败
}
删除ppbyValues[0];
删除[]ppbyvalue;
}
其他的
{
//无法检索符号
}
对于(i=0;i
现在,我想改为发送string
,而不是给出int a_值
如何使此代码与字符串一起工作
您可以在下面找到有关该方法的一些信息SyncWriteVarsToPLC
:
此方法可用于将变量值列表传输至PLC。这些值直接写入PLC
- ppszSymbols:指向变量名的指针列表。这些变量将一次性写入PLC
- ulNumOfSymbols:列表中的变量数
- ppbyValues:指向应写入PLC的变量值的指针列表。注意:必须与指定变量列表匹配