CoE Completed access [測試紀錄]

 

                CoE Completed access test record

                                                                                                By Advan 2021  10/8

[前言] Try to use TCEherCAT.lib CoE SDO Completed access function to optimize CoE access  efficiency in application layer.

Complete Access Support

If this checkbox is checked,

support for uploading or downloading the complete CanOpen object is activated. The entire data area

belonging to the main index with all its subindices is read or written.




https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_io_intro/1357984011.html&id=

https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibethercat/html/tcplclibtcethercat_overview.htm&id=


 

    FB_EcCoeSdoReadEx.bCompleteAccess

要點整理

*回傳容器必須大於實際對象內容,FB似乎不會回傳讀取的實際大小資訊

*測試回傳格式紀錄

subIndex 0  , Number of subindex = int16 , 2 bytes

若內容出現bit 元素,即便不滿16 位元,但至少會occupied 1 word

eNum int16 , 2 byte


 測試環境EL7031-0000-0026 HW10 , SW12

測試情境OD 0x9010 STM info data Ch1

                    回傳長度24 bytes





測試環境EL7031-0000-0026 HW10 , SW12

測試情境OD 0xA010 STM Diag data Ch1

                                回傳長度6 bytes





測試環境EL7031-0000-0026 HW10 , SW12

測試情境OD 0x10F3 Diagnosis History --- 未成功


容器預備1409 byte

Error      1              2021/10/7 下午 05:21:14 720 ms | 'Term 4 (EL7031)' (1004): CoE ('InitUp' 0x10f3:00) - SDO Abort ('Unsupported access to an object.', 0x06010000).                            

嘗試容器預備2048 byte,也是一樣的錯誤,不確定是否有限制,及其門檻來源。

   推估限制門檻應該和MailBox configuration 有關(目前測試情境都算符合此限制條件)




測試環境EL4134  HW07 , SW02

測試情境OD 0x8000 AO setting Ch.1

                回傳長度18 bytes

  經測試  格式拆解如下

 stData[0~1] Number of sub index.

stData[2].0   Enable user scale 8000:01  bit

stData[2].1~~3   Presentation 8000:02 enum

stData[2].4~5   Watchdog 8000:05 enum

stData[2].6   Enable user calibration  8000:07 bit

stData[3].7   Enable Vendor calibration  8000:08 bit

stData[4~5]   Offset                                        8000:11 int16

stData[6~9]   Gain                                            8000:12 int32

stData[10~11]   Default  output                 8000:13 int16

stData[12~13]   Default  output ramp     8000:14 int16

stData[14~15]   User calibration offset    8000:15 int16

stData[16~17]   User calibration gain        8000:16 int16

!! 在這個情境, enum 似乎可以define bit 的個數一起呈現,必須確定對象的實際格式才能知道可以這樣拆。  以上  測試紀錄



2021 11/29   add note    格式之訊在ESI 檔中有敘述  符合測試結果

<DataType>                                                      

                <Name>DT8000</Name>                                           

                <BitSize>144</BitSize>                                 

                <SubItem>                                        

                                <SubIdx>0</SubIdx>                    

                                <Name>SubIndex 000</Name>                              

                                <Type>USINT</Type>                  

                                <BitSize>8</BitSize>                     

                                <BitOffs>0</BitOffs>                    

                                <Flags>                

                                                <Access>ro</Access>   

                                                <Category>o</Category>           

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>1</SubIdx>                    

                                <Name>Enable user scale</Name>                       

                                <Type>BOOL</Type>                   

                                <BitSize>1</BitSize>                     

                                <BitOffs>16</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>2</SubIdx>                    

                                <Name>Presentation</Name>                               

                                <Type>DT0800EN03</Type>                     

                                <BitSize>3</BitSize>                     

                                <BitOffs>17</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>5</SubIdx>                    

                                <Name>Watchdog</Name>                     

                                <Type>DT0801EN02</Type>                     

                                <BitSize>2</BitSize>                     

                                <BitOffs>20</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>7</SubIdx>                    

                                <Name>Enable user calibration</Name>                            

                                <Type>BOOL</Type>                   

                                <BitSize>1</BitSize>                     

                                <BitOffs>22</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>8</SubIdx>                    

                                <Name>Enable vendor calibration</Name>                      

                                <Type>BOOL</Type>                   

                                <BitSize>1</BitSize>                     

                                <BitOffs>23</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>17</SubIdx>                  

                                <Name>Offset</Name>                             

                                <Type>INT</Type>                       

                                <BitSize>16</BitSize>                   

                                <BitOffs>32</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>18</SubIdx>                  

                                <Name>Gain</Name>                

                                <Type>DINT</Type>                    

                                <BitSize>32</BitSize>                   

                                <BitOffs>48</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>19</SubIdx>                  

                                <Name>Default output</Name>                            

                                <Type>INT</Type>                       

                                <BitSize>16</BitSize>                   

                                <BitOffs>80</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>20</SubIdx>                  

                                <Name>Default output ramp</Name>                

                                <Type>UINT</Type>                    

                                <BitSize>16</BitSize>                   

                                <BitOffs>96</BitOffs>                  

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>21</SubIdx>                  

                                <Name>User calibration offset</Name>                             

                                <Type>INT</Type>                       

                                <BitSize>16</BitSize>                   

                                <BitOffs>112</BitOffs>                               

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

                <SubItem>                                        

                                <SubIdx>22</SubIdx>                  

                                <Name>User calibration gain</Name>                 

                                <Type>UINT</Type>                    

                                <BitSize>16</BitSize>                   

                                <BitOffs>128</BitOffs>                               

                                <Flags>                

                                                <Access>rw</Access>  

                                                <Category>o</Category>           

                                                <Backup>1</Backup>   

                                                <Setting>1</Setting>   

                                </Flags>                              

                </SubItem>                                      

</DataType>     

         

留言

這個網誌中的熱門文章

[補充資料] EtherCAT Slave 定址 & Protocol 解析

Access TwinCAT EtherCAT CoE / SoE Object via ADS

ESC SII usage memo(Load Fail)