Table of Contents

Advertisement

Quick Links

PISO-CPM100U-D/T
CANopen Master PCI/ PCI-104 Card
Warranty
All products manufactured by ICP DAS are warranted
against defective materials for a period of one year from
the date of delivery to the original purchaser.
Warning
ICP DAS assume no liability for damages consequent
to the use of this product. ICP DAS reserves the right to
change this manual at any time without notice. The
information furnished by ICP DAS is believed to be
accurate and reliable. However, no responsibility is
assumed by ICP DAS for its use, nor for any infringements
of patents or other rights of third parties resulting from its
use.
Copyright
Copyright 2008 by ICP DAS. All rights are reserved.
Trademark
The names used for identification only maybe registered
trademarks of their respective companies.
PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 1
PCM-CPM100-D
User's Manual

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the PISO-CPM100U-D and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for ICP DAS USA PISO-CPM100U-D

  • Page 1 PISO-CPM100U-D/T PCM-CPM100-D CANopen Master PCI/ PCI-104 Card User’s Manual Warranty All products manufactured by ICP DAS are warranted against defective materials for a period of one year from the date of delivery to the original purchaser. Warning ICP DAS assume no liability for damages consequent to the use of this product.
  • Page 2: Table Of Contents

    Tables of Content General Information................6 1.1. CANopen Introduction..............6 1.2. CANopen Applications ..............7 1.3. CPM100 Library Characteristics ..........8 Hardware Configuration ...............12 2.1. Board Layout ................12 2.1.1. 5-pin screw terminal connector............15 2.1.2. 9-pin D-sub male connector............16 2.1.3. Wire Connection ................17 2.2. Green LED ..................18 2.3.
  • Page 3: Piso-Cpm100(U) / Pcm-Cpm100 User Manual (Ver. 2.02) Dec/03/2012

    4.5.16. CPM100_RemoveAndResetNode ..........50 4.5.17. CPM100_DelayAndResponseTimeout........51 4.5.18. CPM100_ScanNode..............52 4.5.19. CPM100_GetNodeList ..............53 4.5.20. CPM100_NMTChangeState ............54 4.5.21. CPM100_NMTGetState...............55 4.5.22. CPM100_NMTGuarding .............56 4.5.23. CPM100_NMTHeartbeat.............57 4.5.24. CPM100_SDOReadData .............58 4.5.25. CPM100_SDOReadFile...............59 4.5.26. CPM100_SDOWriteData.............60 4.5.27. CPM100_SDOAbortTransmit .............61 4.5.28. CPM100_PDOWrite ..............62 4.5.29. CPM100_PDOWrite_Fast ............63 4.5.30. CPM100_PDORemote..............64 4.5.31. CPM100_PDORemote_Fast ............65 4.5.32.
  • Page 4: Piso-Cpm100(U) / Pcm-Cpm100 User Manual (Ver. 2.02) Dec/03/2012

    4.5.54. CPM100_GetCyclicSYNCInfo............89 4.5.55. CPM100_ChangeEMCYID ............90 4.5.56. CPM100_SetEMCY_List ............91 4.5.57. CPM100_GetEMCYID..............92 4.5.58. CPM100_ReadLastEMCY ............93 4.5.59. CPM100_GetBootUpNodeAfterAdd...........94 4.5.60. CPM100_GetEMCYData ............95 4.5.61. CPM100_GetNMTError ..............96 4.5.62. CPM100_InstallBootUpISR ............97 4.5.63. CPM100_RemoveBootUpISR.............98 4.5.64. CPM100_InstallEMCYISR ............99 4.5.65. CPM100_RemoveEMCYISR ............100 4.5.66. CPM100_InstallNMTErrISR.............101 4.5.67. CPM100_RemoveNMTErrISR..........102 4.5.68. CPM100_GetMasterReadSDOEvent.........103 4.5.69. CPM100_GetMasterWriteSDOEvent ........104 4.5.70.
  • Page 5 5.1.9. SYNC_Protocol .................126 5.1.10. PDO_MultiData .................127 Update Firmware.................128 PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 5...
  • Page 6: General Information

    1. General Information 1.1. CANopen Introduction The CAN (Controller Area Network) is a kind of serial communication protocols, which efficiently supports distributed real-time control with a very high level of security. It is an especially suited for networking intelligent devices as well as sensors and actuators within a system or sub-system.
  • Page 7: Canopen Applications

    1.2. CANopen Applications CANopen is the standardized network application layer optimized for embedded networks. Its specifications cover the standardized application layer, frameworks for the various applications (e.g. general I/O, motion control system, maritime electronics and so forth) as well as device, interface, and application profiles.
  • Page 8: Cpm100 Library Characteristics

    1.3. CPM100 Library Characteristics In order to use the PCI CAN board of PISO-CPM100(U) and the PCI-104 CAN board of PCM-CPM100, we provide CPM100 library for VC, VB.net and C# development, and users can use it to establish the CANopen communication network rapidly.
  • Page 9 Figure 1.3 CANopen communication general concept  Node Manager (NMT Master) Functions for changing the slave device state Node Guarding and Heartbeat Protocol for error control Support Emergency (EMCY) messages  SDO Manager Expedited, segmented and block methods for SDO download and upload ...
  • Page 10 33 MHz 32bit 5 V PCI bus (V2.1) plug and play technology.  Connector: 5-pin screw terminal or 9-pin D-sub male connector.  PISO-CPM100U-D/T:  Universal PCI card supports both 5 V and 3.3 V PCI bus.  Connector: 5-pin screw terminal or 9-pin D-sub male connector.
  • Page 11  Provide Listen Mode to listen the slave status of the CANopen network.  Block-function and non-block-function selected.  Demos and utility are provided.  Library provides VC++, C#.Net2005, and VB.Net2005 developments. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 11...
  • Page 12: Hardware Configuration

    2. Hardware Configuration This section would describe hardware setting PISO-CPM100(U) and PCM-CPM100. This information includes the wire connection and terminal resistance configuration for the CAN network. 2.1. Board Layout Figure 2.1 PISO-CPM100 board layout PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 12...
  • Page 13 Figure 2.2 PISO-CPM100U board layout Figure 2.3 PCM-CPM100 board layout PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 13...
  • Page 14 Jumper Selection The following table shows the definition of jumpers and DIP switch. Users need to refer to this table to configure the CPM100 series hardware. Name Jumper Status Description Flash protection PISO-CPM100U jumper. If users would Enable Disable like to protect the data of the Flash.
  • Page 15: 5-Pin Screw Terminal Connector

    Connector Pin Assignment The CPM100 series have two kinds of connector. One is 5-pin screw terminal connector and the other is 9-pin D-sub male connector for wire connection of the CANopen network. The connector’s pin assignment is specified as follows: 2.1.1.
  • Page 16: 9-Pin D-Sub Male Connector

    2.1.2. 9-pin D-sub male connector The 9-pin D-sub male connector of the CAN bus interface is shown in figure 2.3 and the corresponding pin assignments are given in following table. Figure 2.3 9-pin D-sub male connector Pin No. Signal Description No use CAN_L CAN_L bus line (dominant low)
  • Page 17: Wire Connection

    2.1.3. Wire Connection In order to minimize the reflection effects on the CAN bus line, the CAN bus line has to be terminated at both ends by two terminal resistances as in the following figure. According to the ISO 11898-2 spec, each terminal resistance is 120Ω(or between 108Ω~132Ω).
  • Page 18: Green Led

    2.2. Green LED After CPM100 has been activated, the greed LED would be flashed once when CPM100 receives or transmits one message to CAN bus successfully. If the bus loading is heavy, the green LED would turn on always. 2.3. Red LED When some error occurs, the red LED would turn on until the error has been solved.
  • Page 19: Software Installation

    3. Software Installation 3.1. Software Structure The CPM DLL driver is the CANopen specification function collections for the CPM100 cards used in Windows 2000/XP/Vista/7 with 32-bit systems. The application structure is presented in the following figure. The users’ CANopen master application programs can be developed by the following program development tools: VC++, VB.net, and C#.
  • Page 20: Installation Driver Step By Step

    3.2. Installation Driver Step by Step When users want to use the CPM100 CAN card, the CPM100 driver must be installed firstly. After finishing the installation process, the CPM_Utility and the demo programs would also be installed to the PC. The demo programs may be a good reference for users to build their CANopen master interface by using VC++, C# and VB.net.
  • Page 21 Step 4: Select the folder where the CPM100 setup would be installed and click “Next” button to continue. Step 5: Click the button “Install” to continue. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 21...
  • Page 22 Step 6: Wait for finishing the CPM100 installation. Step 7: Finally, restart the computer to complete the installation. Step 8: When finishing the installation. The CPM100 folder would be found at the Start menu shown as below. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 22...
  • Page 23 Remove the CPM100 driver If the CPM100 driver is not used any more, users can click the “Uninstall” to remove the CPM100 driver below. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 23...
  • Page 24: Cpm100 Function Library

    4. CPM100 Function Library 4.1. Function List In order to use the CPM100 more easily, we provide some useful and easy-to-use functions in CPM100 library. There are three function libraries for different compiler, such as VC, VB and BCB. Users can use these functions to control the CPM100 by using the functions.
  • Page 25 CPM100_NMTGuarding Start to the node guarding function CPM100_NMTHeartbeat Start to the node heartbeat function CPM100_SDOReadData Read data by using the upload SDO protocol CPM100_SDOReadFile Read the huge SDO data for specific slave node CPM100_SDOWriteData Write data by using the download SDO protocol CPM100_SDOAbortTransmit Send the SDO abort message CPM100_PDOWrite...
  • Page 26 CPM100_SetEMCY_List Set the EMCY COB-ID and don’t check if it exists CPM100_GetEMCYID Get the EMCY COB-ID CPM100_ReadLastEMCY Get the last EMCY message of the slave Get boot up message of node slave that had CPM100_GetBootupNodeAfterAdd added in CPM100 node list. CPM100_GetEMCYData Get the EMCY message from the EMCY buffer Get the NMT Error event from the NMT event...
  • Page 27: Function Return Code

    4.2. Function Return Code The following table interprets all the return code returned by the CANopen Master Library functions. Return Error ID Description Code CPM_NoError CPM_DriverError Kernel driver is not opened CPM_BoardNumberErr There is no CPM100 on the specific board No. CPM_ConfigErr The CPM100 hasn’t been configured successfully CPM_MasterInitErr...
  • Page 28 CPM_CycFullErr There are already 5 cyclic message running CPM_Timeout Message response timeout CPM_DataLenErr Data length setting error CPM_Wait Command is uncompleted (only for non-block mode) CPM_Processing Command is running (only for non-block mode) CPM_LoadEDSErr Loading the EDS file fails CPM_EDSFormatErr The format of the EDS file is incorrect Table 4.2 Description of return code...
  • Page 29: Canopen Master Library Application Flowchart

    4.3. CANopen Master Library Application Flowchart In this section, it describes that the operation procedure about how to use the CANopen Master Library to build users applications. This information is helpful for users to apply the CANopen Master Library easily. Besides, the CANopen operation principles must be obeyed when build a CANopen master application.
  • Page 30 Figure 4.1 Main programming sequences PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 30...
  • Page 31: Communication Services Introduction

    4.4. Communication Services Introduction NMT Services The CANopen Master Library provides several NMT services functions, such functions CPM100_AddNode, CPM100_EDS_Load, CPM100_RemoveNode, CPM100_NMTChangeState, CPM100_NMTGetState, CPM100_NMTHeartbeat, and CPM100_NMTGuarding. As the prerequisite for the master, the slave nodes have to be registered by the function CPM100_AddNode or CPM100_EDS_Load with providing its Node-ID.
  • Page 32 SDO Services “Initiate SDO download protocol” or “Initiate SDO upload protocol” is used when the object data length ≦ 4 bytes. If the object data length > 4 bytes, “Download SDO segment protocol” or “Upload SDO segment protocol” will be used.
  • Page 33 SYNC Services Calling the function CPM100_SendSYNCMsg starts the SYNC object transmission. This function supports single SYNC message transmission and cyclic SYNC message transmission. The parameter “Timer” of the function CPM100_SendSYNCMsg can adjust the cyclic period of the SYNC COB-ID sent by master. And the parameter “Times” can set the sending times of the SYNC message.
  • Page 34: Function Description

    4.5. Function Description 4.5.1. CPM100_GetVersion  Description: This function is used to obtain the version information of the CPM100.lib library.  Syntax: WORD CPM100_GetVersion(void)  Parameter: None  Return: LIB library version information. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 34...
  • Page 35: Cpm100_Totalboard

    4.5.2. CPM100_TotalBoard  Description: Obtain the total board number of CPM100 plugged in the PCI bus.  Syntax: WORD CPM100_TotalBoard(void)  Parameter: None  Return: Return the scanned total CPM100 number. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 35...
  • Page 36: Cpm100_Getboardswitchno

    4.5.3. CPM100_GetBoardSwitchNo  Description: Obtain the DIP switch No. of CPM100.  Syntax: WORD CPM100_GetBoardSwitchNo(BYTE BoardCntNo, BYTE *BoardNo)  Parameter: BoardCntNo: [input] The number of specified CPM100. For example, if the first CPM100 is applied, this value is 0. If the second board is applied, this value is 1.
  • Page 37: Cpm100_Getboardinf

    4.5.4. CPM100_GetBoardInf  Description: Obtain the information of CPM100, which includes vendor ID, device ID and the interrupt number.  Syntax: WORD CPM100_GetBoardInf(BYTE BoardNo, DWORD *dwVID, DWORD *dwDID, DWORD *dwSVID, DWORD *dwSDID, DWORD *dwSAuxID, DWORD *dwIrqNo)  Parameter: BoardNo: [input] Switch of CPM100 DIP.
  • Page 38: Cpm100_Getcanstatus

    4.5.5. CPM100_GetCANStatus  Description: Obtain the status of the CAN controller of the specific CPM100 board.  Syntax: int CPM100_GetCANStatus(BYTE BoardNo, BYTE *bStatus)  Parameter: BoardNo: [input] CPM100 DIP switch No.(0~15). *bStatus: [output] The address of a variable is applied to get the status value of CAN controller.
  • Page 39: Cpm100_Setfunctiontimeout

    4.5.6. CPM100_SetFunctionTimeout  Description: Sometimes, some function cost more time to complete its task, such as CPM100_ScanNode. If some API of the CPM100 library never gets the feedback from the CPM100 until timeout value goes by, the error code “CPM_Timeout” will be returned. Through this function, the user can adjust the suitable maximum timeout value of all functions for application.
  • Page 40: Cpm100_Initmaster

    4.5.7. CPM100_InitMaster  Description: The function must be applied when configuring the CAN controller and initialize the CPM100. It must be called once before using other functions of the CPM100.lib.  Syntax: WORD CPM100_InitMaster(BYTE BoardNo, BYTE Node, BYTE BaudRate, BYTE BlockMode) ...
  • Page 41: Cpm100_Shutdownmaster

    4.5.8. CPM100_ShutdownMaster  Description: The function CPM100_ShutdownMaster removes all the slaves that had added to master and stop all the functions of the CPM100. The function must be called before exit the users’ application programs.  Syntax: WORD CPM100_ShutdownMaster (BYTE BoardNo) ...
  • Page 42: Cpm100_ Mastersendbootupmsg

    4.5.9. CPM100_ MasterSendBootupMsg  Description: To use the function CPM100_MasterSendBootupMsg can let CPM100 sends a boot up message after CPM100_InitMaster is called. Note: The function is valid while the Node parameter of the function CPM100_InitMaster is > 0.  Syntax: WORD CPM100_MasterSendBootupMsg (BYTE BoardNo, BYTE BlockMode) ...
  • Page 43: Cpm100_Setmastermode

    4.5.10. CPM100_SetMasterMode  Description: This function can configure if the master is into listen mode or normal mode (default mode). In listen mode, the CPM100 can’t send any CANopen message, and some functions will be useless in this mode. User can select normal mode or listen mode at any time after calling function CPM100_InitMaster.
  • Page 44: Cpm100_Getmastermode

    4.5.11. CPM100_GetMasterMode  Description: If user want to know what operation mode of the master is, call the function to get it.  Syntax: WORD CPM100_GetMasterMode(BYTE BoardNo, BYTE *Mode, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). *Mode: [output] 0 is normal mode (default mode), and 1 is listen mode. BlockMode: [input] 0 means this function is non-block-function, and 1 means this function is block-function.
  • Page 45: Cpm100_Getfirmwareversion

    4.5.12. CPM100_GetFirmwareVersion  Description: The function can let users know what is the version number of the CPM100’s firmware.  Syntax: WORD CPM100_GetFirmwareVersion (BYTE BoardNo, WORD *Fir_Ver, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). *Fir_Ver: [output] CPM100 firmware version information. BlockMode: [input] 0 means this function is non-block-function, and 1 means this function is block-function.
  • Page 46: Cpm100_Eds_Load

    4.5.13. CPM100_EDS_Load  Description: The function CPM100_EDS_Load can let users load EDS file for adding a CANopen slave with specified Node ID into the master node list. Using this function will not send any message to check if the slave is existent or not.
  • Page 47: Cpm100_Addnode

    4.5.14. CPM100_AddNode  Description: The function CPM100_AddNode can add a CANopen slave with specified Node ID into the master node list. There are three mode of the function. Mode 1 is adding node automatically, mode 2 is adding node manually, and mode 3 is allowing the automatic adding the node while it boots up.
  • Page 48 delay time is too long, the performance of the CPM100 is down. The unit of the parameter is ms. ResTimeout: [input] The timeout value of the responded messages from the CANopen slaves. When the master sends a CANopen message to the slave, it will wait the feedback until timeout if there is a feedback.
  • Page 49: Cpm100_Removenode

    4.5.15. CPM100_RemoveNode  Description: The function CPM100_RemoveNode removes the slave with the specified Node-ID from node list of the master. It requires a valid Node-ID, which has installed by the function CPM100_AddNode before.  Syntax: WORD CPM100_RemoveNode(BYTE BoardNo, BYTE Node, BYTE BlockMode) ...
  • Page 50: Cpm100_Removeandresetnode

    4.5.16. CPM100_RemoveAndResetNode  Description: The function CPM100_RemoveAndResetNode removes the slave with the specified Node-ID from node list of the master and reset the slave. It requires a valid Node-ID, which has installed by the function CPM100_AddNode before.  Syntax: WORD CPM100_RemoveAndResetNode (BYTE BoardNo, BYTE Node, BYTE BlockMode) ...
  • Page 51: Cpm100_Delayandresponsetimeout

    4.5.17. CPM100_DelayAndResponseTimeout  Description: Call the function to change CAN message minimum interval time and response timeout value of the slave node at any time.  Syntax: WORD CPM100_DelayAndResponseTimeout (BYTE BoardNo, BYTE Node, WORD DelayTime, WORD ResTimeout, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7).
  • Page 52: Cpm100_Scannode

    4.5.18. CPM100_ScanNode  Description: User can use the function CPM100_ScanNode to know how many slave nodes are on the CANopen network.  Syntax: WORD CPM100_ScanNode(BYTE BoardNo, BYTE S_Node, BYTE E_Node, BYTE *NodeList, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). S_Node: [input] Start node ID.
  • Page 53: Cpm100_Getnodelist

    4.5.19. CPM100_GetNodeList  Description: User can use the function CPM100_GetNodeList to know how many slave nodes are added to the node list of the CPM100.  Syntax: WORD CPM100_GetNodeList(BYTE BoardNo, BYTE *NodeList, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). *NodeList: [output] This is a 16-byte array parameter.
  • Page 54: Cpm100_Nmtchangestate

    4.5.20. CPM100_NMTChangeState  Description: The function CPM100_NMTChangeState is used to change the NMT state of a slave. If the node parameter of this function is set to 0, the state of all nodes on the same CANopen network will be changed. ...
  • Page 55: Cpm100_Nmtgetstate

    4.5.21. CPM100_NMTGetState  Description: The function CPM100_NMTGetState can get the NMT state from slaves.  Syntax: WORD CPM100_NMTGetState(BYTE BoardNo, BYTE Node, BYTE *State, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Node: [input] Slave device Node-ID (1~127). *State: [output] The NMT state of the slave. STOPPED OPERATIONAL 127: PRE-OPERATIONAL...
  • Page 56: Cpm100_Nmtguarding

    4.5.22. CPM100_NMTGuarding  Description: Use the function CPM100_NMTGuarding to set guard time and life time factor of the slave with the specified node ID. Then, the master will automatically send the guarding message to slave device according to the “GuardTime” parameters of this function. If the master doesn’t receive the confirmation of guarding message from the salve, the CPM100 will produce a Node_Guarding_Event event to users.
  • Page 57: Cpm100_Nmtheartbeat

    4.5.23. CPM100_NMTHeartbeat  Description: Use the function CPM100_NMTHeartbeat to set heartbeat time of the slave with the specified node ID and consume time with the CPM100. Then, the slave will automatically send the heartbeat message to master according to the “ProduceTime” parameters of this function. If the master doesn’t receive the heartbeat message from the slave until the “ConsumeTime”...
  • Page 58: Cpm100_Sdoreaddata

    4.5.24. CPM100_SDOReadData  Description: The function CPM100_SDOReadData is useful to the SDO upload from a specified slave. When users use this function, pass the slave device node ID, object index and object subindex into this function. This function supports both expedition mode (less then 4-byte data length) and segment mode (more then 4-byte data length).
  • Page 59: Cpm100_Sdoreadfile

    4.5.25. CPM100_SDOReadFile  Description: The function CPM100_SDOReadFile is useful as uploading the SDO data more then 1024 bytes. While users use the CPM100_ReadData to read the SDO data and the return data length is more then 1024 byte. The SDO data are stored in a file. Users can use the function CPM100_SDOReadFile for reading the SDO data from the file.
  • Page 60: Cpm100_Sdowritedata

    4.5.26. CPM100_SDOWriteData  Description: The function CPM100_SDOWriteData can send out a SDO message to the specified salve device. This procedure is also called download protocol. parameter node function CPM100_SDOWriteData is used to point which slave device will receive this SDO message. Because the data length of each object stored in object dictionary is different, users need to know the data length when writing the object of the object dictionary of the specified slave devices.
  • Page 61: Cpm100_Sdoaborttransmit

    4.5.27. CPM100_SDOAbortTransmit  Description: Call the function CPM100_SDOAbortTransmit to cancel the SDO transmission. The parameter node of this function is used to specify which SDO communication will be terminated between the master and the specified salve device.  Syntax: WORD CPM100_SDOAbortTransmit(BYTE BoardNo, BYTE Node, WORD Index, BYTE SubIndex, DWORD *AData, BYTE BlockMode) ...
  • Page 62: Cpm100_Pdowrite

    4.5.28. CPM100_PDOWrite  Description: Call the function CPM100_PDOWrite to send out a PDO message to the specified slave device. Before using this function, users need to use the function CPM100_InstallPDO to install the PDO object into CPM100 if users want to use non-default PDO. Then, change the NMT state of the target slave device operational...
  • Page 63: Cpm100_Pdowrite_Fast

    4.5.29. CPM100_PDOWrite_Fast  Description: The function is like CPM100_PDOWrite but does not check whether the PDO message really sends to CAN bus or not. So CPM100_PDOWrite_Fast is about twice as faster than CPM100_PDOWrite at high speed baud rate (greater than or equal to 250kbps). ...
  • Page 64: Cpm100_Pdoremote

    4.5.30. CPM100_PDORemote  Description: function CPM100_PDORemote send (remote-transmit-request) PDO message to the slave device.  Syntax: WORD CPM100_PDORemote (BYTE BoardNo, WORD Cobid, BYTE *DLen, BYTE *TData, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Cobid: [input] COB-ID used by the PDO object. *DLen: [output] The data length of the RTR PDO message.
  • Page 65: Cpm100_Pdoremote_Fast

    4.5.31. CPM100_PDORemote_Fast  Description: Use the function CPM100_PDORemote_Fast only to send a RTR (remote-transmit-request) PDO message to the slave device but not wait for the response message. Note: This function usually is used with CPM100_GetPDOLastData.  Syntax: WORD CPM100_PDORemote_Fast (BYTE BoardNo, WORD Cobid) ...
  • Page 66: Cpm100_Setpdoremotepolling

    4.5.32. CPM100_SetPDORemotePolling  Description: If the CANopen slaves do not support the event timer function of the TxPDOs, using the function CPM100_SetPDORemotePolling can config the most 125 TxPDO objects into the remote polling list. Then, the CPM100 will poll the configured TxPDOs and update the data into buffer automatically.
  • Page 67: Cpm100_Getpdolastdata

    4.5.33. CPM100_GetPDOLastData  Description: Using the function CPM100_GetPDOLastData can get the last data of the RxPDO and TxPDO from the PDO data buffer. The last PDO data is saved in PDO buffer, so it may not the same with the real situation. ...
  • Page 68: Cpm100_Getpdolastdata_Fast

    4.5.34. CPM100_GetPDOLastData_Fast  Description: This function is like CPM100_GetPDOLastData. Although this function performance is better than CPM100_GetPDOLastData, but CPM100_GetPDOLastData_Fast can’t check the getting data is new or not.  Syntax: WORD CPM100_GetPDOLastData_Fast (BYTE BoardNo, WORD Cobid, BYTE *DLen, BYTE *RData) ...
  • Page 69: Cpm100_Getmultipdodata

    4.5.35. CPM100_GetMultiPDOData  Description: This can get the last data of the RxPDO and TxPDO from the PDO data buffer such as the function CPM100_GetPDOLastData. But the difference between these two functions is that user can use the function CPM100_GetMultiPDOData to get maximum 50 PDO data at the same time.
  • Page 70: Cpm100_Getmultipdodata_Fast

    4.5.36. CPM100_GetMultiPDOData_Fast  Description: This function is like CPM100_GetMuliPDOData. Although this function performance is better than CPM100_GetMuliPDOData, but CPM100_GetMuliPDOData_Fast can’t check the getting data is new or not.  Syntax: WORD CPM100_GetMuliPDOData_Fast (BYTE BoardNo, BYTE PDOCnt, WORD *Cobid, BYTE *DLen, BYTE *RData) ...
  • Page 71: Cpm100_Getrxpdoid

    4.5.37. CPM100_GetRxPDOID  Description: Use the function CPM100_GetRxPDOID to get all the RxPDO COB-IDs of the specified slave, which have been installed to the master.  Syntax: WORD CPM100_GetRxPDOID (BYTE BoardNo, BYTE Node, BYTE *PDO_Cnt, WORD *ID_List, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7).
  • Page 72: Cpm100_Gettxpdoid

    4.5.38. CPM100_GetTxPDOID  Description: Use the function CPM100_GetTxPDOID to get all the TxPDO COB-IDs of the specified slave, which have been installed to the master.  Syntax: WORD CPM100_GetTxPDOID (BYTE BoardNo, BYTE Node, BYTE *PDO_Cnt, WORD *ID_List, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7).
  • Page 73: Cpm100_Installpdo

    4.5.39. CPM100_InstallPDO  Description: After calling the CPM100_InstallPDO function, a PDO COB-ID will be installed in the PDO object list of the CANopen Master Library stack. If the slave device has defined the default PDO object in RxPDO1 ~ RxPDO10 and TxPDO1 ~ TxPDO10, in this case, these default PDO will installed automatically...
  • Page 74: Cpm100_Dynamicpdo

    4.5.40. CPM100_DynamicPDO  Description: This function can modify the mapping data of PDO object in the PDO object list of the CANopen Master Library stack. Take a note that before calling this function user must check if the PDO had been installed in the CPM100.
  • Page 75: Cpm100_Removepdo

    4.5.41. CPM100_RemovePDO  Description: The function CPM100_RemovePDO can remove a TxPDO or RxPDO object had installed by the CPM100_InstallPDO or CPM100_AddNode. This function also can remove single object mapped in TxPDO or RxPDO.  Syntax: WORD CPM100_RemovePDO(BYTE BoardNo, BYTE Node, WORD Cobid, BYTE Entry, BYTE BlockMode) ...
  • Page 76: Cpm100_Changepdoid

    4.5.42. CPM100_ChangePDOID  Description: Use the function CPM100_ChangePDOID to change the PDO COB-ID from old “Old_Cobid” to new “New_Cobid” of a slave device.  Syntax: WORD CPM100_ChangePDOID (BYTE BoardNo, WORD Old_Cobid, WORD New_Cobid, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Old_Cobid: [input] Old COB-ID used by the PDO object.
  • Page 77: Cpm100_Getpdomapinfo

    4.5.43. CPM100_GetPDOMapInfo  Description: The function CPM100_GetPDOMapInfo can get the mapping data information of the PDO object.  Syntax: WORD CPM100_GetPDOMapInfo (BYTE BoardNo, WORD Cobid, BYTE *RxTx, BYTE *Tx_Type, WORD *Event_Timer, BYTE *Entry_Cnt, DWORD *Map_Data, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Cobid: [input] COB-ID used by the PDO object.
  • Page 78: Cpm100_Installpdo_List

    4.5.44. CPM100_InstallPDO_List  Description: This function is similar with the CPM100_InstallPDO function. It can install the old or new PDO object in the PDO object list of the CPM100. same CPM100_InstallPDO. CPM100_InstallPDO_List doesn’t send any message to check if the PDO object exists in the real slave.
  • Page 79 If the configuration is “Cobid = 0x333, RxTx = 0, PDO_No = 10, Entry = 2, EntryData[0] = 0x64110310, EntryData[1] = 0x62000108”, it will map the RxPDO10 with COB-ID 0x333. The 1 entry is 16-bit data of index 0x6411 and subindex 0x03 object and the 2 entry is 8-bit data of index 0x6200 and subindex 0x01 object.
  • Page 80: Cpm100_Removepdo_List

    4.5.45. CPM100_RemovePDO_List  Description: The function CPM100_RemovePDO_List can remove a TxPDO or RxPDO object had installed by the CPM100_InstallPDO_List. This function also can remove single object mapped in the TxPDO or RxPDO.  Syntax: WORD CPM100_RemovePDO_List(BYTE BoardNo, BYTE Node, WORD Cobid, BYTE Entry, BYTE BlockMode) ...
  • Page 81: Cpm100_Pdouseentry

    4.5.46. CPM100_PDOUseEntry  Description: Use this function to change the useful object mapping entry of PDO object. The useful entry starts from 1 to the parameter Entry. Therefore, if the parameter Entry is 0, it means that the PDO have no useful object mapping entry.
  • Page 82: Cpm100_Pdotxtype

    4.5.47. CPM100_PDOTxType  Description: Use this function to change transmission type of TxPDO. The default transmission type is 255.  Syntax: WORD CPM100_PDOTxType(BYTE BoardNo, WORD Cobid, BYTE Tx_Type, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Cobid: [input] COB-ID used by the PDO object. Tx_Type: [input] Transmission type of TxPDO (0 ~ 255).
  • Page 83: Cpm100_Pdoeventtimer

    4.5.48. CPM100_PDOEventTimer  Description: Use this function to change the event timer of the TxPDO. The default event timer is 0. When the event timer of the PDO object of the slave is more than 0, the PDO will be sent to master due to the parameter “Timer”...
  • Page 84: Cpm100_Pdoinhibittime

    4.5.49. CPM100_PDOInhibitTime  Description: Use this function to set the inhibit time to the TxPDO. This time is a minimum interval for PDO transmission.  Syntax: WORD CPM100_PDOInhibitTime(BYTE BoardNo, WORD Cobid, WORD Time, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Cobid: [input] COB-ID used by the PDO object.
  • Page 85: Cpm100_Changesyncid

    4.5.50. CPM100_ChangeSYNCID  Description: Use the function CPM100_ChangeSYNCID to change the SYNC COB-ID of a slave device.  Syntax: WORD CPM100_ChangeSYNCID (BYTE BoardNo, BYTE Node, WORD Cobid, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Node: [input] Slave device Node-ID (1~127). Cobid: [input] COB-ID used by the SYNC object.
  • Page 86: Cpm100_Setsync_List

    4.5.51. CPM100_SetSYNC_List  Description: If the user uses CPM100_AddNode function to add the slave with manual mode, the function CPM100_SetSYNC_List must be called while the SYNC ID of the slave needs to be changed or be set. The function CPM100_SetSYNC_List can only change the SYNC COB-ID in the COB-ID list of the CPM100, the real value stored in the slave device may be different from the configuration which is set by the function CPM100_SetSYNC_List.
  • Page 87: Cpm100_Getsyncid

    4.5.52. CPM100_GetSYNCID  Description: This function can get the SYNC ID from the COB-ID list of the CPM100.  Syntax: WORD CPM100_GetSYNCID (BYTE BoardNo, BYTE Node, WORD *Cobid, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Node: [input] Slave device Node-ID (1~127). *Cobid: [output] Return the COB-ID used by the SYNC object.
  • Page 88: Cpm100_Sendsyncmsg

    4.5.53. CPM100_SendSYNCMsg  Description: Use the function CPM100_SendSYNCMsg to send a SYNC message with specified COB-ID cyclically. If the parameter “Timer” is 0, the SYNC message will be stopped. If the parameter “Timer” is more than 0, the function will send SYNC message per “Timer” millisecond until finish the parameter “Times”.
  • Page 89: Cpm100_Getcyclicsyncinfo

    4.5.54. CPM100_GetCyclicSYNCInfo  Description: This function can get at most 5 SYNC messages information which have been configured by the function CPM100_SendSYNCMsg. User can know what SYNC ID had been set.  Syntax: WORD CPM100_GetCyclicSYNCInfo(BYTE BoardNo, WORD *Cobid, WORD *Timer, DWORD *Times, BYTE BlockMode) ...
  • Page 90: Cpm100_Changeemcyid

    4.5.55. CPM100_ChangeEMCYID  Description: Use the function CPM100_ChangeEMCYID to change the EMCY COB-ID of a specific slave device.  Syntax: WORD CPM100_ChangeEMCYID (BYTE BoardNo, BYTE Node, WORD Cobid, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Node: [input] Slave device Node-ID (1~127). Cobid: [input] COB-ID used by the EMCY object.
  • Page 91: Cpm100_Setemcy_List

    4.5.56. CPM100_SetEMCY_List  Description: If the user uses CPM100_AddNode function to add the slave with manual mode, the function CPM100_SetEMCY_List must be called while the EMCY ID of the slave needs to be changed or be set. CPM100_SetEMCY_List only can change the EMCY COB-ID in the COB-ID list of the CPM100.
  • Page 92: Cpm100_Getemcyid

    4.5.57. CPM100_GetEMCYID  Description: This function can get the EMCY ID from the COB-ID list of the CPM100.  Syntax: WORD CPM100_GetEMCYID (BYTE BoardNo, BYTE Node, WORD *Cobid, BYTE BlockMode)  Parameter: BoardNo: [input] CPM100 board number (0~7). Node: [input] Slave device Node-ID (1~127). *Cobid: [output] Return the COB-ID used by the EMCY object.
  • Page 93: Cpm100_Readlastemcy

    4.5.58. CPM100_ReadLastEMCY  Description: This function can check if one slave had produced EMCY. If yes, this function will return the last EMCY message of the specific slave.  Syntax: WORD CPM100_ReadLastEMCY (BYTE BoardNo, BYTE Node, BYTE *IsNew, BYTE *RData, BYTE BlockMode) ...
  • Page 94: Cpm100_Getbootupnodeafteradd

    4.5.59. CPM100_GetBootUpNodeAfterAdd  Description: If users don’t know which slave node occur the boot-up message and which CPM100 received Users function CPM100_GetBootUpNodeAfterAdd. This function can get not only the slave node ID but also the slot number of the CPM100. The parameter, BoardNo, indicates the number of the CPM100 which receives the boot-up message.
  • Page 95: Cpm100_Getemcydata

    4.5.60. CPM100_GetEMCYData  Description: If users don’t know that which slave node occurred the EMCY message and which CPM100 received it. Users can use the function CPM100_GetEMCYData. This function can get not only the EMCY message with the slave node ID but also the board number of the CPM100.
  • Page 96: Cpm100_Getnmterror

    4.5.61. CPM100_GetNMTError  Description: User can use the function CPM100_GetNMTError to check if the CPM100 gets NMT Error Event for any slave node. The parameters of the function indicate that which CPM100 gets the NMT Error Event, which node produces this event, and what kind of event it is. The parameter, BoardNo, indicates the number of the CPM100 which indicates Heartbeat_Event...
  • Page 97: Cpm100_Installbootupisr

    4.5.62. CPM100_InstallBootUpISR  Description: This function allows the user to apply the slave boot-up IST (interrupt service thread). When the user puts his boot-up process into this function, all the boot-up triggered by the slaves will go to the boot-up IST. If the boot-up message of a slave which has been added to the CPM100 is happen, the CPM100 will go into the boot-up process to do some specified mechanism which follows the user’s boot-up process.
  • Page 98: Cpm100_Removebootupisr

    4.5.63. CPM100_RemoveBootUpISR  Description: When the user doesn’t need the boot-up IST function, call this function to remove the user’s IST.  Syntax: WORD CPM100_RemoveBootUpISR (BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 98...
  • Page 99: Cpm100_Installemcyisr

    4.5.64. CPM100_InstallEMCYISR  Description: This function allows the user to apply the EMCY IST (interrupt service thread). When the user puts his EMCY process into this function, all the EMCY triggered by the slaves will go to the EMCY IST. If the EMCY of a slave is happen, the CPM100 will go into the EMCY process to do some security mechanism which follows the user’s EMCY process.
  • Page 100: Cpm100_Removeemcyisr

    4.5.65. CPM100_RemoveEMCYISR  Description: When the user doesn’t need the EMCY IST function, call this function to remove the user’s IST.  Syntax: WORD CPM100_RemoveEMCYISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 100...
  • Page 101: Cpm100_Installnmterrisr

    4.5.66. CPM100_InstallNMTErrISR  Description: This function allows the user to apply NMTErr IST (interrupt service thread). When the user puts his NMTErr process into this function, all the Heartbeat_Event and Node_Guarding_Event triggered by the slaves will IST. user used CPM100_NMTGuarding to enable the guarding protocol or had used the CPM100_Heartbeat to enable the heartbeat protocol, the CPM100 will go into the NMTErr IST to do the user’s NMTErr process while the guarding confirms or heartbeat indicator doesn’t be received.
  • Page 102: Cpm100_Removenmterrisr

    4.5.67. CPM100_RemoveNMTErrISR  Description: When the user doesn’t need the NMTErr IST function, call this function to remove the user’s IST.  Syntax: WORD CPM100_RemoveNMTErrISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 102...
  • Page 103: Cpm100_Getmasterreadsdoevent

    4.5.68. CPM100_GetMasterReadSDOEvent  Description: Using this function can get all the read SDO messages sent to the specific node ID of the CPM100. For example, the CPM100 is initialized with node ID 2. If someone sends an SDO message with the COB-ID 0x602 to the CPM100 for reading an object, users can use the function CPM100_GetMasterReadSDOEvent for obtaining this SDO message, and respond some information to the SDO sender.
  • Page 104: Cpm100_Getmasterwritesdoevent

    4.5.69. CPM100_GetMasterWriteSDOEvent  Description: Using this function can get all the write SDO messages sent to the specific node ID of the CPM100. For example, the CPM100 is initialized with node ID 2. If someone sends an SDO message with the COB-ID 0x602 to the CPM100 for writing an object, users can use the function CPM100_GetMasterWriteSDOEvent for obtaining this SDO message.
  • Page 105: Cpm100_Responsemastersdo

    4.5.70. CPM100_ResponseMasterSDO  Description: Using this function can reply the SDO messages to the SDO sender. For example, the CPM100 is initialized with node ID 2. If someone sends a SDO message with the COB-ID 0x602 for reading or writing the object of the CPM100, the CPM100 need to reply the corresponding SDO message, use the function CPM100_ResponseMasterSDO to do it.
  • Page 106: Cpm100_Installreadsdoisr

    4.5.71. CPM100_InstallReadSDOISR  Description: This function allows the user to apply the ReadSDO IST (interrupt service thread) of CPM100. When the user puts his read SDO process into this function, all the read SDO messages sent to the specified CPM100 will trigger the IST. For example, the CPM100 is initialized with node ID 2.
  • Page 107: Cpm100_Removereadsdoisr

    4.5.72. CPM100_RemoveReadSDOISR  Description: When the user doesn’t need the ReadSDO IST function, call this function to remove the user IST.  Syntax: WORD CPM100_RemoveReadSDOISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 107...
  • Page 108: Cpm100_Installwritesdoisr

    4.5.73. CPM100_InstallWriteSDOISR  Description: This function allows the user to apply the WriteSDO IST (interrupt service routine) of the CPM100. When the user puts the process into this function, all the written SDO messages sent to the specified CPM100 will trigger the IST. For example, the CPM100 is initialized with node ID 2.
  • Page 109: Cpm100_Removewritesdoisr

    4.5.74. CPM100_RemoveWriteSDOISR  Description: When the user doesn’t need the WriteSDO IST function, call this function to remove the user IST.  Syntax: WORD CPM100_RemoveWriteSDOISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 109...
  • Page 110: Cpm100_Getmasterremotepdoevent

    4.5.75. CPM100_GetMasterRemotePDOEvent  Description: Using this function can get all the Remote PDO messages sent to the CPM100. For example, the CPM100 has used the function CPM100_InstallPDO_List to install an CPM100’s TxPDO object with the COB-ID 0x444. If someone sends a Remote PDO message with the COB-ID 0x444 to the CPM100, users can use the function CPM100_GetMasterRemotePDOEvent to get this PDO message.
  • Page 111: Cpm100_Getmasterrxpdoevent

    4.5.76. CPM100_GetMasterRxPDOEvent  Description: Using this function can get all the RxPDO messages sent to the CPM100. For example, the CPM100 has used the function CPM100_InstallPDO_List to install an CPM100‘s RxPDO object with the COB-ID 0x333. If someone sends an RxPDO message with the COB-ID 0x333 to the CPM100, users can use this function to get this RxPDO message.
  • Page 112: Cpm100_Responsemasterpdo

    4.5.77. CPM100_ResponseMasterPDO  Description: Using this function can reply the Remote PDO messages to the sender. For example, the CPM100 has used CPM100_InstallPDO_List to install a TxPDO object with the COB-ID 0x444. If someone sends a Remote PDO message with the COB-ID 0x444 to the CPM100, and the CPM100 needs to reply a TxPDO message, users can use this function When users...
  • Page 113: Cpm100_Installrxpdoisr

    4.5.78. CPM100_InstallRxPDOISR  Description: This function allows the user to apply the RxPDO IST (interrupt service routine) of the CPM100. When the user puts his process into this function, all the RxPDO messages with the CPM100’s PDO objects will trigger IST.
  • Page 114: Cpm100_Removerxpdoisr

    4.5.79. CPM100_RemoveRxPDOISR  Description: When the user doesn’t need the RxPDO IST function, call this function to remove the user IST.  Syntax: WORD CPM100_RemoveRxPDOISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 114...
  • Page 115: Cpm100_Installremotepdoisr

    4.5.80. CPM100_InstallRemotePDOISR  Description: This function allows the user to apply the RemotePDO IST (interrupt service routine) of the CPM100. When the user puts his process into this function, all the Remote PDO messages of the CPM100’s PDO objects will trigger the IST. For example, the CPM100 has used CPM100_InstallPDO_List to install a TxPDO object with the COB-ID 0x444 of the CPM100.
  • Page 116: Cpm100_Removeremotepdoisr

    4.5.81. CPM100_RemoveRemotePDOISR  Description: When the user doesn’t need the RemotePDO IST function, call this function to remove the user IST.  Syntax: WORD CPM100_RemoveRemotePDOISR(BYTE BoardNo)  Parameter: BoardNo: [input] CPM100 board number (0~7). PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 116...
  • Page 117: Demo Programs

    5. Demo Programs The CPM100 provides 10 demos of the various applications for NMT protocol, SDO protocol, PDO protocol, NMT Error IST…etc. All these demos support VC++, VB.net 2005, and C# 2005. There is also a tool, CPMUtility, to control/monitor CANopen slaves with CPM100 easily and quickly. Users can find these demos and utility tool in the fieldbus CD or on the web site.
  • Page 118: Listen_Mode

    5.1.1. Listen_Mode Initialize the CPM100 with the “listen mode” and add slave nodes with the “manual mode” or EDS file, then the CPM100 listens CANopen messages only and does not send any message to the CANopen network. In this demo, the CPM100 will listen NMT state, 4 TxPDO messages (with the COB ID 0x180+Node ID, 0x280+Node ID, 0x380+Node ID, and 0x480+Node ID), 4 RxPDO messages (with the COB ID 0x200+Node ID, 0x300+Node ID,...
  • Page 119: Nmt_Protocol

    5.1.2. NMT_Protocol This is a NMT network control demo. The demo not only tells users how to control the NMT status of a specific slave node, but also how to protect the slave through the “Guarding” and “Heartbeat” functions. Applied function list: CPM100_InitMaster, CPM100_Shutdown, CPM100_AddNode,...
  • Page 120: Pdo_Parameter

    5.1.3. PDO_Parameter Sometimes, the default PDO configuration can’t satisfy users. Users need to change the configuration of the PDO related parameters such as transmission type, PDO ID, event timer, dynamic PDO, and so forth. This demo will demonstrate how to change settings of these PDO parameters and show the configuration result.
  • Page 121: Pdo_Protocol

    5.1.4. PDO_Protocol The PDO protocol is the main protocol to control the I/O of the specific slave device in the CANopen network. This demo shows how to read and write data to the slave device with the PDO functions. Applied function list: CPM100_InitMaster, CPM100_Shutdown, CPM100_AddNode,...
  • Page 122: Scan_Node

    5.1.5. Scan_Node When users want to know which slave nodes exist on the CANopen network or which slave nodes are under the control of the CPM100, this demo will is useful. Applied function list: CPM100_InitMaster, CPM100_Shutdown, CPM100_AddNode, CPM100_RemoveNode, CPM100_SetFunctionTimeout, CPM100_ScanNode, CPM100_GetNodeList PISO-CPM100(U) / PCM-CPM100 user manual (ver.
  • Page 123: Sdo_Pdo_Isr

    5.1.6. SDO_PDO_ISR In this demo, it is allowed to configure the CPM100 as a CANopen slave. Users can use another CANopen master to read/write the users’ defined object dictionary of the CPM100 by SDO protocol or to get/set the DIO status by PDO protocol when the CPM100, the I-8053W DI module, and the I-8057W DO module are plugged in the same MCU.
  • Page 124: Sdo_Read

    5.1.7. SDO_Read SDO protocol is a kind of the communication functions used to read/write CANopen object dictionary. You can read any object data of the object dictionary through the object address (index and sub-index) by SDO protocol. This demo is a good model to do that. Applied function list: CPM100_InitMaster, CPM100_Shutdown,...
  • Page 125: Sdo_Write

    5.1.8. SDO_Write SDO protocol is a kind of the communication functions used to read/write CANopen object dictionary. You can write any data to the specific object of the object dictionary through the object address (index and sub-index) by SDO protocol. This demo is a good model to do that. Applied function list: CPM100_InitMaster, CPM100_Shutdown,...
  • Page 126 5.1.9. SYNC_Protocol SYNC protocol is a synchronous function of the PDO communication. It is always used with the transmission type of the PDO communication. In this demo, users can know how to use the SYNC related functions. Applied function list: CPM100_InitMaster, CPM100_Shutdown, CPM100_AddNode,...
  • Page 127 5.1.10. PDO_MultiData Sometimes, users want to poll several PDO objects data at the same time for increasing the performance. But it is slower that sending the Remote PDO to poll each PDO data one by one. So users can set event timer or remote list for these PDO.
  • Page 128: Update Firmware

    6. Update Firmware If users want to update the firmware of the CPM100, use the CANUtility tool to do it. * Where to find the CANUtility tool? The path of field bus CD: fieldbus_cd://can/pci/piso-cm100u/tools/2000_xp/ The address of the web site: http://ftp.icpdas.com/pub/cd/fieldbus_cd/can/pci/piso-cm100u/tools/2000_xp/ The following steps describe the method about how to update the CPM100 firmware by CANUtility tool.
  • Page 129 When finishing the download procedure, the Download OK dialog is popped up. Click OK button to continue. PISO-CPM100(U) / PCM-CPM100 user manual (ver. 2.02) Dec/03/2012 ----------------- 129...

This manual is also suitable for:

Pcm-cpm100-dPiso-cpm100u-t

Table of Contents