ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MATLAB [Send CAN message]
    한국과학기술연구소 인턴 2023. 4. 4. 15:16

    배경

    매트랩을 활용하여 PEAK System 사의 PCAN-USB 제품을 제어하기 위해 매뉴얼 정리

     

    Transmit Messages

    type generateMsgs

    The example function generateMsgs creates CAN messages using canMessage and transmits them using transmit at various periodic rates. It generates traffic on the CAN bus for demonstration purposes.

     

    function generateMsgs()
    % generateMsgs Creates and transmits CAN messages for demo purposes.
    %
    %   generateMsgs periodically transmits multiple CAN messages at various
    %   periodic rates with changing message data.
    %
    
    % Copyright 2008-2016 The MathWorks, Inc.
    
        % Create the messages to send using the canMessage function. The 
        % identifier, an indication of standard or extended type, and the data
        % length is given for each message.
        msgTx100 = canMessage(100, false, 0);
        msgTx200 = canMessage(200, false, 2);
        msgTx400 = canMessage(400, false, 4);
        msgTx600 = canMessage(600, false, 6);
        msgTx800 = canMessage(800, false, 8); 
    
        % Create a CAN channel on which to transmit.
        txCh = canChannel('MathWorks', 'Virtual 1', 1);
    
        % Register each message on the channel at a specified periodic rate.
        transmitPeriodic(txCh, msgTx100, 'On', 0.500);
        transmitPeriodic(txCh, msgTx200, 'On', 0.250);
        transmitPeriodic(txCh, msgTx400, 'On', 0.125);
        transmitPeriodic(txCh, msgTx600, 'On', 0.050);
        transmitPeriodic(txCh, msgTx800, 'On', 0.025);
        
        % Start the CAN channel.
        start(txCh);
        
        % Run for several seconds incrementing the message data regularly.
        for ii = 1:50
            % Increment the message data bytes.
            msgTx200.Data = msgTx200.Data + 1;
            msgTx400.Data = msgTx400.Data + 1;
            msgTx600.Data = msgTx600.Data + 1;
            msgTx800.Data = msgTx800.Data + 1;
            
            % Wait for a time period.
            pause(0.100);
        end
    
        % Stop the CAN channel.
        stop(txCh);
    end

     

    canChannel

     
    Sysntax
    message1 = canMessage(id,extended,datalength)
    message2 = canMessage(candb,messagename)
    
    //Create a CAN Message
    message3 = canMessage(2500,true,4)
    
    //Create a Message with Database Definitions
    candb = canDatabase("C:\myVNTData\VehicleInfo.dbc")
    message4 = canMessage(candb,"WheelSpeeds")

     


    transmit

     

    Sysntax

    //Transmit a CAN Message
    message = canMessage (250,false,8);
    message.Data = ([45 213 53 1 3 213 123 43]);
    canch = canChannel('MathWorks','Virtual 1',1);
    start(canch)
    transmit(canch,message)
    
    
    
    //Transmit an Array of Messages
    transmit(canch,[message0,message1,message2])
    
    
    //Transmit Messages on a Remote Frame
    message = canMessage(250,false,8);
    message.Data = ([45 213 53 1 3 213 123 43]);
    message.Remote = true;
    canch = canChannel('MathWorks','Virtual 1',1);
    start(canch)
    transmit(canch,message)

     

    '한국과학기술연구소 인턴' 카테고리의 다른 글

    MATLAB[Recieve CAN message]  (0) 2023.04.07
    MATLAB [CAN channel creation]  (0) 2023.03.28
    PCAN-USB manual  (0) 2023.03.27
    UART  (0) 2023.03.26
    uCAN Converter (API)  (0) 2023.03.25
Designed by Tistory.