久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4814|回復(fù): 5
收起左側(cè)

STM32實(shí)現(xiàn) Ethercat 從站源碼

  [復(fù)制鏈接]
ID:647576 發(fā)表于 2022-3-29 18:37 | 顯示全部樓層 |閱讀模式
該源碼是當(dāng)前流行的機(jī)器人控制系統(tǒng)倍福所采用的構(gòu)架Ethercat  總線
xml文件是設(shè)備描述文件,燒寫在了EEPROM 里面  從站站 (ET11000)上電后 會(huì)從 eeprom 加載配置參數(shù)
完成初始化過(guò)程

文件中有對(duì)應(yīng)IO 及AD 全局變量的定義
extern     uint16_t uhADCxConvertedValue;
#define SWITCH_1         PCin(7)//   PCin(8)                // PORTDbits.RD7 /**< \brief Access to switch 1 input*/
#define SWITCH_2         PCin(8)//   PCin(9)                // PORTDbits.RD6 /**< \brief Access to switch 2 input*/
#define SWITCH_3         PCin(9)//   PAin(11)                // PORTDbits.RD5 /**< \brief Access to switch 3 input*/
#define SWITCH_4         PGin(11)//   PAin(12)                // PORTDbits.RD4 /**< \brief Access to switch 4 input*/
#define SWITCH_5         PGin(12)//   PAin(13)                // PORTDbits.RD3 /**< \brief Access to switch 5 input*/
#define SWITCH_6         PGin(13)//   PAin(14)                // PORTDbits.RD2 /**< \brief Access to switch 6 input*/
#define SWITCH_7         PGin(14)//  PAin(15)                // PORTDbits.RD1 /**< \brief Access to switch 7 input*/
#define SWITCH_8         PGin(15)//   PCin(12)                // PORTDbits.RD0 /**< \brief Access to switch 8 input*/

#define LED_1            PCout(6)    //     PCout(7)                // LATBbits.LATB8 /**< \brief Access to led 1 output*/
#define LED_2            PGout(8)    //     PCout(6)            //3////LATBbits.LATB9 /**< \brief Access to led 2 output*/
#define LED_3            PGout(7)//     PGout(8)                // LATBbits.LATB10 /**< \brief Access to led 3 output*/
#define LED_4            PGout(6)//     PGout(7)                //LATBbits.LATB11 /**< \brief Access to led 4 output*/
#define LED_5            PGout(5)//     PGout(6)                // LATBbits.LATB12 /**< \brief Access to led 5 output*/
#define LED_6            PGout(4)//     PGout(5)                // LATBbits.LATB13 /**< \brief Access to led 6 output*/
#define LED_7            PGout(3)//     PGout(4)                //LATBbits.LATB14 /**< \brief Access to led 7 output*/
#define LED_8            PDout(13)//     PGout(3)   


部分源碼如
/////////////////////////////////////////////////////////////////////////////////////////
/**
\return     0(ALSTATUSCODE_NOERROR), NOERROR_INWORK
\param      pInputSize  pointer to save the input process data length
\param      pOutputSize  pointer to save the output process data length

\brief    This function calculates the process data sizes from the actual SM-PDO-Assign
            and PDO mapping
*////////////////////////////////////////////////////////////////////////////////////////
UINT16 APPL_GenerateMapping(UINT16* pInputSize,UINT16* pOutputSize)
{
#if COE_SUPPORTED
    UINT16 result = ALSTATUSCODE_NOERROR;
    UINT16 PDOAssignEntryCnt = 0;
    OBJCONST TOBJECT OBJMEM * pPDO = NULL;
    UINT16 PDOSubindex0 = 0;
    UINT32 *pPDOEntry = NULL;
    UINT16 PDOEntryCnt = 0;
    UINT16 InputSize = 0;
    UINT16 OutputSize = 0;

    /*Scan object 0x1C12 RXPDO assign*/
    for(PDOAssignEntryCnt = 0; PDOAssignEntryCnt < sRxPDOassign.u16SubIndex0; PDOAssignEntryCnt++)
    {
        pPDO = OBJ_GetObjectHandle(sRxPDOassign.aEntries[PDOAssignEntryCnt]);
        if(pPDO != NULL)
        {
            PDOSubindex0 = *((UINT16 *)pPDO->pVarPtr);
            for(PDOEntryCnt = 0; PDOEntryCnt < PDOSubindex0; PDOEntryCnt++)
            {
                        //                                result = *(UINT8 *)pPDO->pVarPtr;
                        //                                result=(OBJ_GetEntryOffset((PDOEntryCnt+1),pPDO)>>3);
                pPDOEntry = (UINT32 *)((UINT8 *)pPDO->pVarPtr + (OBJ_GetEntryOffset((PDOEntryCnt+1),pPDO)>>3));    //goto PDO entry
                // we increment the expected output size depending on the mapped Entry
                OutputSize += (UINT16) ((*pPDOEntry) & 0xFF);
            }
        }
        else
        {
            /*assigned PDO was not found in object dictionary. return invalid mapping*/
            OutputSize = 0;
            result = ALSTATUSCODE_INVALIDOUTPUTMAPPING;
            break;
        }
    }

    OutputSize = (OutputSize + 7) >> 3;// +7

下載: STM32實(shí)現(xiàn) Ethercat 從站源碼.rar (1.19 MB, 下載次數(shù): 98)
UC16-R1.rar (4.54 KB, 下載次數(shù): 53)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:145349 發(fā)表于 2023-2-16 16:23 | 顯示全部樓層
EtherCAT從站開(kāi)發(fā)板及源程序:
簡(jiǎn)化XML生成,簡(jiǎn)化編程,10分鐘快速入門,詳細(xì)見(jiàn):
http://www.openedv.com/forum.php?mod=viewthread&tid=340287
回復(fù)

使用道具 舉報(bào)

ID:1068936 發(fā)表于 2023-3-31 08:50 | 顯示全部樓層
樓主,你好!STM32實(shí)現(xiàn)EtherCat從站源碼,看不出從那體現(xiàn)出來(lái)。能否詳細(xì)解說(shuō)一下,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:47543 發(fā)表于 2024-8-7 11:19 | 顯示全部樓層
受教了,謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:25103 發(fā)表于 2025-1-1 19:21 | 顯示全部樓層
受教了,謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:429078 發(fā)表于 2025-1-2 00:06 | 顯示全部樓層
goodjob
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本免费高清视频 | 久久一区二区视频 | 久久久久国产精品夜夜夜夜夜 | 日韩成人在线播放 | 国产欧美综合一区二区三区 | 国产视频导航 | 毛片网站在线观看 | 黄色网址av| 手机看片1024日韩 | 欧洲一区二区三区 | 岛国一区二区三区 | 中文字幕免费看 | 天天射一射 | 一级片观看 | 色哟哟一区二区三区 | 久草综合网 | 久久久久久久91 | 超碰免费97| 中文字幕在线观看不卡 | 人人爽人人爽 | av高清在线观看 | 国产黄色一区二区 | 高潮一区二区三区乱码 | 日韩a视频| 一级免费黄色片 | 一级黄色大片 | 中文字幕免费在线观看 | 涩五月婷婷 | 国产91丝袜在线播放 | 最近中文字幕在线观看 | 国产又黄又爽视频 | 日本毛片在线观看 | 日韩亚洲欧美在线 | 国产亚洲一区二区三区 | 欧美日韩视频在线 | 亚洲免费久久 | 日韩三级一区 | 日韩一区二区三区av | 国产成人精 | 毛片网站免费观看 | 国产一区在线播放 |