S7400与上位机通信的问题,关于R_ID=1,2 点击:550 | 回复:1



zhaodadong

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年6月20日
发表于:2008-05-03 21:48:37
楼主
在S7 400侧使用SFB12发送数据到上位机,R_ID=1,2两个发送,上位机中使用Sapi_S7.h,在VC环境下接收,部分程序如下:
m_s7=new S7TCP(m_hWnd);
m_s7->my_init(0,WM_S7_400_TRIGGLE);
m_s7->my_initiate_request();
LRESULT CDialogPLC::OnS7_400Triggle(WPARAM WParam,LPARAM LParam)
{
int32 iRet;
ord16 uiConnectionReference, uiOrderId;
ord32 r_id_remote,m_fact_rev_size;
CString mystr;


iRet =s7_receive(m_s7->CPDescriptor, &uiConnectionReference, &uiOrderId);
switch(iRet)
{
case S7_NO_MSG:
break;

case S7_INITIATE_CNF:
m_s7->my_get_initiate_confirmation();
m_s7->my_brcv_init(1);
// m_s7->my_brcv_init(2);

isS7Shut=false;

// SetDlgItemText(IDC_EDIT_S7400_DISP,_T("Connection OK!"));

// dlg->m_s7400_led.SetBlinking(false);
// dlg->m_data.s7400_status=true;
// dlg->m_s7400_led.SetLedColor(1);
// dlg->Print("S7-400","OnS7_400Triggle","nothing","S7-400 is connected successfully",0);

break;
case S7_BSEND_CNF:
m_s7->my_get_bsend_confirmation();
// SetDlgItemText(IDC_EDIT_S7400_DISP,_T("Send data successful!"));
break;

case S7_BRCV_IND:
// SetDlgItemText(IDC_EDIT_S7400_DISP,_T("PLC Data Arrival!"));
m_s7->my_get_brcv_indication(revBuff,REV_SIZE,r_id_remote,m_fact_rev_size);
if(!isDataRevRunning)
DataArrivalProcess(r_id_remote,m_fact_rev_size);
break;

case S7_ABORT_IND:
mystr=_T("Abort indication received,shutting down the CP, ending application,check your stations");
// SetDlgItemText(IDC_EDIT_S7400_DISP,mystr);
if(!isS7Shut)
{
m_s7->my_shut();
isS7Shut=true;
}

// dlg->m_data.s7400_status=false;
// dlg->m_s7400_led.SetLedColor(0);

break;
default:
break;
}
return 0;
}
对SApi_s7只做了简单封装,函数基本一样,使用过程中只能接收到R_ID=1或R_ID=2中的一个,发现问题在
m_s7->my_brcv_init(1);//
m_s7->my_brcv_init(2);
//Sapi_S7.h中相应函数为s7_brcv_init(CPDescriptor, CRef, r_id);
这一句,初始化哪个就只能接收一个,但如果再创建一个S7TCP也不成,把接口手册看了一遍,也没有发现相关内容,有没有做过的兄弟姐妹帮帮忙,看看,在这里先谢过了



龙唐西门道

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 301回
  • 年度积分:1
  • 历史总积分:787
  • 注册:2004年2月26日
发表于:2008-05-05 15:58:58
1楼
不懂VC,但是帮顶一下!!同时学习一下阿~~

热门招聘
相关主题

官方公众号

智造工程师