改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序

改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序

ID:46227953

大小:98.75 KB

页数:17页

时间:2019-11-21

改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序_第1页
改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序_第2页
改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序_第3页
改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序_第4页
改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序_第5页
资源描述:

《改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一行通讯程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、改进的西门子PPI通讯协议程序,支持主和从!做主时,PLC不用写一•行通讯程序//*******************木程序实现两个串行口可以同时异步通讯,在MEGA162,MEGA64上成功实现//^Purpose:当PPI本机为从时,接受到了主的命令,命令有两种,申请和确认//**uc.rec.len是长度,不是下标。先效验返冋为发送串长(下标),返冋Oxff为不发送UCHARppi_reqframe_an1ys_s1aver(UCHARuc_ch,UCHAR*puc_rec_buf,UCHARuc_

2、rec_len,UCHAR*puc_send_buf,ucharme_address){staticucharst_uc_ppi_var_type[MCU_UART_NUM]={2,2};//传输的数据类型staticucharst_uc_ppi_varnum[MCU_UART_?^UM];//传输的数据个数staticuintstui_ppimevaradd[MCU_UARTNUM];staticucharstucppiconnecttype[MCUUARTNUM]=(0,0};UCHARucp_send

3、_count,uc_count;U1NTul6;UCHARuc_midl,uc_mid2,uc_mid3;if((*puc_rec_buf)==Ox10)//确认命令{if((uc_rec_lcn!=6)

4、

5、(*(puc_rec_buf+5)!二0x16))//长度不对,或者结束符号不对{return(Oxfe);if(*(pucrecbuf+1)!=meaddress){return(Oxfe);}if(uc_ppi_addtest(puc_rec_buf+l,uc_rec_len-3)!=*(puc_r

6、ec_buf+uc_rec_len-2))//效验{return(Oxfe);}//1003025c6116//if(st_uc_ppi_connect_typc[uc_ch]==0)//还没连接//{//return(Oxfe);//}//以上是2008.6.24修改,因为如果上电或其他I大1素//首发DC命令,再发49命令,以上导致对49命令无响应(因为无连接),而PLC死循ucp_send_count=0;if(*(puc_rec_buf+3)!=0x49)//最多出现的是5C,而7C也见过uc_co

7、unt=st_uc_ppi_var_num[uc_ch];//此后的计算结果,uc_count将成为字节数uc_midl=st_ucjppi_var_type[uc_ch]:if(uc_midl==4)//如果是字{uc_count*二2;}elseif(ucmidi==6)//如果是双字{uccount*=4;}elseif(uc_midl==1)//位{return(Oxfe);}if((uc_count+26)>=conini_array_max_xb){return(Oxfe);}if(st_uc_

8、ppi_connect_type[uc_ch]==1)//连接的性质,主PLC读本机uc_midl=0x15+uc_count;uc_mid2二4+uc_count;uc_micI3=0x04;}else0x12;0x01;0x05;ucmidiucmid2uc_mid3*(puc_send*(puc_send_buf*(puc_send_buf*(pucsendbuf*(puc_scnd_buf*(puc_scnd_buf*(puc_send_buf*(puc_send_buf*(puc_send_buf

9、*(pucsendbuf*(pucsendbuf*(pucsendbufbufucp_send_count++)=0x68;ucp_send_count++)=uc_micll;ucp_send_count++)ucpsendcount++)ucp_scnd_count++)ucp_scnd_count++)ucp_send_count++)ucp_send_count++)ucp_send_count++)ucpsendcount++)ucpsendcount++)ucpsendcount++)==uc_

10、midl;=0x68;=*(puc_rec_buf+2);//对方地址=*(puc_rec_buf+1);//本机地址=0x08;=0x32;=0x03;=0x00;=0x00;ucppicommcount[ucch];//通讯次数*(puc_send_buf+ucp_send_count++)ucjppi_conmi_count[uc_ch];〃主机來是多少,返回就是多少*(puc_sendbuf*(pucse

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。