各位兄弟 我用C脚本写了一段程序,主要是当按下某个按钮时调用以下C脚本程序,用以改变PLC的变量值,现在试下来连接PLC变量正常,就是不能改变PLC变量值,请大家帮我看看是什么原因,谢谢啊!
#include "APDEFAP.h"
BOOL executeSorterCommand(char* in_szNodeID,
char* in_szSorterCommand)
{
BOOL bRetVal = FALSE;
DWORD dwCommandHandshake_WinCC = 0;
char* pszBytePointer = NULL;
int iCommandByte = 0;
int iCommandBit = 0;
char szTextBuffer1k[1024];
memset(szTextBuffer1k, 0, sizeof(szTextBuffer1k));
sprintf(szTextBuffer1k, "@NOP::SorterCommands-%s-WinCC-Handshake", in_szNodeID);
;
dwCommandHandshake_WinCC = GetTagDWord(szTextBuffer1k);
pszBytePointer = (char*) &dwCommandHandshake_WinCC;
// Enable unit
if (strcmp(in_szSorterCommand, "ENABLEUNIT") == 0)
{
// Set bit 0 of dw-byte 3
iCommandByte = 3;
iCommandBit = 1;
}
// Disable unit
else if (strcmp(in_szSorterCommand, "DISABLEUNIT") == 0)
{
// Set bit 1 of dw-byte 3
iCommandByte = 3;
iCommandBit = 2;
}
// set only if flag is not already set
if ((*(pszBytePointer+iCommandByte)&iCommandBit) != iCommandBit)
{
*(pszBytePointer+iCommandByte) += iCommandBit;
memset(szTextBuffer1k, 0, sizeof(szTextBuffer1k));
sprintf(szTextBuffer1k, "@NOP::SorterCommands-%s-WinCC-Handshake", in_szNodeID);
bRetVal = SetTagDWord(szTextBuffer1k, dwCommandHandshake_WinCC);
}
return TRUE;
}