11.18 OpenCAN

OpenCan is based on CAN2.0 standard; OpenCAN protocols that could be configured autonomously to accept and send frames.

This protocol is only available in PI8000 series HMI.

HMI settings







CAN port

Baud rate


CAN frame setting in HMI

1) Click [OpenCAN setting] button in communication setting window;

2) Click [Add] to create a new frame;






add a frame related to register address



Select the position where you want to insert a frame, and click [Insert frame] to add a new frame in front of the current frame position


Frame manager

This list shows some of the main parameters for each frame that the user adds



Modify the frames in frame management



Copy one frame to another



Remove the selected frames from the list by modifying the frames in frame management. If no frames are selected in the list, the first frame is deleted.



All frames in the list are cleared



Displays configuration files in XML format in IE



Complete the configuration of the frame and exit

3) Set CANBUS frame in setting windows






Set the ID of a can frame in hexadecimal format;


ID assign

split the ID by PF, PS, and SA;


Frame type

Select Standard frame or Extended Frame;


Frame format

Select between data frame and remote Frame;



Set the data part of CAN frame, with two Numbers representing a hexadecimal number and Spaces spaced; Maximum support of 8 bytes is defined according to CAN message;


Use address

Set the register address related to the CAN frame, which corresponds to the register address set on the main state one by one. The data obtained from the address is assigned continuously;

Edit: Set a bit or word address by its format;

Option: Set address options related to frame, enter “register address option” interface, specifically browse the following “register address option” interface;


Data interactive configuration

There are two interactive modes of the touch screen. One is that the touch screen actively sends frames, and the device receives and processes and feeds back. The other, on the contrary, passively receives frames from the device for processing and feedback;

Send after receiving: if this item is selected, the interaction of the touch screen will act as a passive party, and the touch screen will receive the CAN frame first and send feedback. Unchecked items interact in the opposite way;

Feedback mode: feedback mode includes no response, confirm response and data response;

No response: the device or touch screen will not receive feedback;

Confirm response: the device or the touch screen will receive feedback with confirmation, which could be used to compare the data parts. If this function is used, the 20 addresses before and after this address should not be used. All addresses of cata10-cata30 could not be used with the reply confirmation function of cata20;

Data response: the device or touch screen will receive feedback with data, and the data to be separated from the feedback frame should be set to store in the register address;

response ID: if the address wants to receive data on a frame with a different ID, set this, check "different from sender", and enter a different ID in the following input box. Without this setting, the screen will receive and process a frame with the same ID as the sender;

Response timeout: sets whether the response frame timeout;


Control address

If ticked, enable sending when the value of the corresponding control bit number (address) is non-0.

Control bit: CtrlBit register range 0~255, if the control bit is ON, can instruction will run normally. Otherwise, it doesn't run;

Manually send: a manually send tick indicates only one send;


Flag configuration

Communication control for each frame. Display OFF when communication is normal, and ON when communication is abnormal;



Fill the text to explain the meaning of the frame;


Data assign

Preview the display in this table based on the address and the corresponding number of digits;


Current operation display

Display the description of current operation;



Add a new frame;


Save frame

Save the configured frame format;



Cancel the frame configuration;

4) Set CAN address (Read or write operation);





Current address

Displays the register type and register address set by the user in the data access interface



Two operations, "read" and "write," are based on on-screen registers

If "read" is selected, the register address is reading device data in a manner of sending frames set by the user in a loop.

If "write" is selected, the screen data of the register address will be written into the device. The writing mode is that the user makes a write operation on the screen, which will trigger the sending of a frame set by the user.


Data operation

The read and write operations in the trigger conditions are set accordingly.

If the trigger condition is a read operation, this section needs to set the position and length of the data to be obtained at the current address in the frame.

If the trigger condition is a writing operation, there are two situations:

 If the "add writing data to the frame" option is not selected, the frame set by the user will be sent directly when the user writes on the screen.

 Select the "add the written data to the frame" option, and when the user writes on the screen, the program will insert the data in the frame set by the user and send the written data to the frame set by the user according to the data insertion position and length set by the user.


Position and length input format

If the register type is a bit address, the decimal point is required to represent the bits in the byte. For example, 1.1 represents the first bit of the first byte of 8 bytes in the data frame, and the length is in bits, and so on.

If the register type is word address, the integer only needs to represent the byte, such as 1, which represents the first byte of 8-byte data in the data frame, and the unit of length is byte, and so on.



Add current configuration



Close the configuration window to exit

Multiple packages settings

1) Check [Multiple packages supported] to open [Multiple package data] window, as below show.

2) Select Multiple package type

 Not Multiple packages

 J1939 Multiple packages

 Customized Multiple packages

3) Click [Edit Receive data] for [Receive] settings

 Start code+ Total length (J1939)

As set above set, J1939 command is received by the HMI, only when its length is 25 bytes, and the start code is 0x57, 0x1B;

 Start code + Data max length (J1939)

As set above set, J1939 command is received by the HMI, only when its length less than 50 bytes, and the start code is 0x57, 0x1B;

 Data max length (J1939)

As set above set, J1939 command is received by the HMI, only when its length less than 50 bytes.

 Customized multiple package

As set above, It is received by the HMI, when the first frame starts with 0X57 0X1B, and the sum of the data lengths of multiple frames is equal to 79 bytes.

4) Click [Edit Send data] for [Send] setting

 J1939

[Data] is all data to be sent.

Since the frame of the J1939 frame contains the number of the data packet, so the data sent is: the first byte (number) + 7 bytes of data. If it is less than 7 bytes, it is sent in the actual number of bytes.

 Customized multiple package

[Data] is all data to be sent.

As set above, fist frame length is 2 bytes, and others are sent with 6 bytes for every frame, if the last frame is less than 6 bytes, send according to the actual length.

Communication cable


The address interval between each frame need to be more than a word address;

Last updated