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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4527|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

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

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:647576 發(fā)表于 2022-3-29 18:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
該源碼是當(dāng)前流行的機(jī)器人控制系統(tǒng)倍福所采用的構(gòu)架Ethercat  總線
xml文件是設(shè)備描述文件,燒寫在了EEPROM 里面  從站站 (ET11000)上電后 會從 eeprom 加載配置參數(shù)
完成初始化過程

文件中有對應(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實現(xiàn) Ethercat 從站源碼.rar (1.19 MB, 下載次數(shù): 98)
UC16-R1.rar (4.54 KB, 下載次數(shù): 53)

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:145349 發(fā)表于 2023-2-16 16:23 | 只看該作者
EtherCAT從站開發(fā)板及源程序:
簡化XML生成,簡化編程,10分鐘快速入門,詳細(xì)見:
http://www.openedv.com/forum.php?mod=viewthread&tid=340287
回復(fù)

使用道具 舉報

板凳
ID:1068936 發(fā)表于 2023-3-31 08:50 | 只看該作者
樓主,你好!STM32實現(xiàn)EtherCat從站源碼,看不出從那體現(xiàn)出來。能否詳細(xì)解說一下,謝謝!
回復(fù)

使用道具 舉報

地板
ID:47543 發(fā)表于 2024-8-7 11:19 | 只看該作者
受教了,謝謝分享
回復(fù)

使用道具 舉報

5#
ID:25103 發(fā)表于 2025-1-1 19:21 | 只看該作者
受教了,謝謝分享
回復(fù)

使用道具 舉報

6#
ID:429078 發(fā)表于 2025-1-2 00:06 | 只看該作者
goodjob
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级淫片免费视频黄 | 91在线电影| 精品久久久久久久久久久久久久久久久 | 日韩精品视频一区二区三区 | 91精品国产综合久久久久久 | 亚洲国产网| 久久国产精品网站 | 人人干在线| 欧美性生活网 | 狠狠涩 | 久久久久久久久久影视 | 欧洲精品久久久久毛片完整版 | 日韩欧美精品一区 | 成人性视频免费网站 | 亚洲精品一区二区二区 | 97av在线| 国产成人精品久久二区二区91 | 成人精品一区亚洲午夜久久久 | 999久久久免费精品国产 | 华丽的挑战在线观看 | 亚洲精品一区在线 | 日本在线黄色 | 国产美女精品视频 | 色就干 | 精品一区二区三区av | 蜜桃av一区二区三区 | 男女国产视频 | 日本免费一区二区三区四区 | 亚洲久在线| 99精品热视频| 亚洲天堂男人的天堂 | 欧美中文一区 | 日韩欧美在线免费观看视频 | 欧美九九 | 国产一区三区视频 | 国产a视频 | 91视视频在线观看入口直接观看 | 亚洲精品久久久一区二区三区 | 桃花av在线 | 性高湖久久久久久久久 | 国产网站在线播放 |