登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:[求助] MX Component在BCB6上的使用問題

点击:1691 回复:3

MX Component在BCB6上的使用問題
由於最近換了工作,所以就由VB轉戰到BCB6上
可是目前遇到個怪問題
void __fastcall TForm1::SaveBtnClick(TObject *Sender)
{
   wchar_t     wbuffer[64];
   long        BufferLen = StrToInt(LEdit_BlockNum->Text);
   long        nTemp[100];
   long        nError;
   char        cTemp[128];
   AnsiString lRet;
     for (int i=0 ;i<128;++i)
   {
           cTemp=NULL;
   };
   for (int i=0 ;i<64;++i)
   {
           wbuffer=NULL;
   };
   //初始化陣列
   for (int I=0;I    {
        nTemp[I]=I+1;
   }  ;
   sprintf(cTemp, "%s", LEdit_BlockPLC->Text);
   //將單字元改為雙字元
   MultiByteToWideChar(CP_ACP, 0, cTemp,strlen(cTemp),wbuffer,sizeof(wbuffer));
   nError = actU->WriteDeviceBlock(wbuffer, BufferLen, nTemp );
}
這段程式碼可以正確的把測試值寫入PLC也不會發生錯誤
但是怪就怪在其他如 ReadDeviceBlock,SetDevice,GetDevice都會錯誤
以下為程式碼
void __fastcall TForm1::SetBtnClick(TObject *Sender)
{
   wchar_t     wbuffer[64];
   long        nTemp;
   long        nError;
   char        cTemp[128] ;
  AnsiString lRet;
   for (int i=0 ;i<128;++i)
   {
           cTemp=NULL;
   };
   for (int i=0 ;i<64;++i)
   {
           wbuffer=NULL;
   };
   //將單字元改為雙字元
   sprintf(cTemp, "%s", LEdit_SinPLC->Text.Trim());
   MultiByteToWideChar(CP_ACP, 0, cTemp,strlen(cTemp),wbuffer,sizeof(wbuffer));
   nTemp=   0xFEDE;
   nError = actU->SetDevice( wbuffer, nTemp );
}
基本上可以說只有 Component指令部分有所改變,其餘差不多是相同的
想不通為什麼會這樣,麻煩各位前輩解答一下,謝謝
PLC為 三菱Q02
連接的模組為:QJ71E71-100
使用的元件為 ActQCPUQUSB及ActQJ71E71TCP(兩個都會發生相同的狀況)
發生的錯誤碼為:0x01802001
手冊上(簡體版)的錯誤敘述為:軟元件出錯,函數中指定的軟元件字符串未經批准    
糾正方法為:檢查軟元件名
09-12-28 11:58
Q的是会,但没用过这语言编过程序
09-12-28 15:09

引用 fumz78 在 2009-12-28 15:09:44 发言【内容省略】

請問前輩有VC的範例嗎?
09-12-28 15:32
没有这个范例
09-12-28 15:43

工控新闻

更多新闻资讯