TheCommon Industrial Protocol(CIP) is an industrial protocol forindustrial automationapplications. It is supported byODVA. Previously known as Control and Information Protocol,[1]CIP encompasses a comprehensive suite of messages and services for the collection of manufacturing automation applications – control, safety, synchronization, motion, configuration and information. It allows users to integrate these manufacturing applications with enterprise-levelEthernetnetworks and theInternet. It is supported by hundreds of vendors around the world,[2]and is media-independent. CIP provides a unified communication architecture throughout the manufacturing enterprise. It is used inEtherNet/IP,DeviceNet, CompoNet andControlNet. ODVA is the organization that supports network technologies built on the Common Industrial Protocol (CIP). These also currently include application extensions to CIP: CIP Safety, CIP Motion and CIP Sync.
DeviceNetis a network protocol used in the automation industry to interconnect control devices for data exchange. It utilizes theCommon Industrial Protocolover aController Area Networkmedia layer and defines an application layer to cover a range of device profiles. Typical applications include information exchange, safety devices, and largeI/O controlnetworks.[1]
Usage: candump [options] <CAN interface>+ (use CTRL-C to terminate candump)
Options: -t <type> (timestamp: (a)bsolute/(d)elta/(z)ero/(A)bsolute w date) -H (read hardware timestamps instead of system timestamps) -c (increment color mode level) -i (binary output - may exceed 80 chars/line) -a (enable additional ASCII output) -S (swap byte order in printed CAN data[] - marked with '`' ) -s <level> (silent mode - 0: off (default) 1: animation 2: silent) -l (log CAN-frames into file. Sets '-s 2' by default) -L (use log file format on stdout) -n <count> (terminate after reception of <count> CAN frames) -r <size> (set socket receive buffer to <size>) -D (Don't exit if a "detected" can device goes down. -d (monitor dropped CAN frames) -e (dump CAN error frames in human-readable format) -x (print extra message infos, rx/tx brs esi) -T <msecs> (terminate after <msecs> without any reception)
Up to 16 CAN interfaces with optional filter sets can be specified on the commandline in the form: <ifname>[,filter]*
Filters: Comma separated filters can be specified for each given CAN interface: <can_id>:<can_mask> (matches when <received_can_id> & mask == can_id & mask) <can_id>~<can_mask> (matches when <received_can_id> & mask != can_id & mask) #<error_mask> (set error frame filter, see include/linux/can/error.h) [j|J] (join the given CAN filters - logical AND semantic)
CAN IDs, masks and data content are given and expected in hexadecimal values. When the can_id is 8 digits long the CAN_EFF_FLAG is set for 29 bit EFF format. Without any given filter all data frames are received ('0:0' default filter).
Use interface name 'any' to receive from all CAN interfaces.
candump -l any,0~0,#FFFFFFFF (log only error frames but no(!) data frames) candump -l any,0:0,#FFFFFFFF (log error frames and also all data frames) candump vcan2,12345678:DFFFFFFF (match only for extended CAN ID 12345678) candump vcan2,123:7FF (matches CAN ID 123 - including EFF and RTR frames) candump vcan2,123:C00007FF (matches CAN ID 123 - only SFF and non-RTR frames)
$ cansend vcan0 cansend - send CAN-frames via CAN_RAW sockets.
Usage: cansend <device> <can_frame>.
<can_frame>: <can_id>#{data} for 'classic' CAN 2.0 data frames <can_id>#R{len} for 'classic' CAN 2.0 data frames <can_id>##<flags>{data} for CAN FD frames
<can_id>: 3 (SFF) or 8 (EFF) hex chars {data}: 0..8 (0..64 CAN FD) ASCII hex-values (optionally separated by '.') {len}: an optional 0..8 value as RTR frames can contain a valid dlc field <flags>: a single ASCII Hex value (0 .. F) which defines canfd_frame.flags
$ cansend --help cansend - send CAN-frames via CAN_RAW sockets.
Usage: cansend <device> <can_frame>.
<can_frame>: <can_id>#{data} for 'classic' CAN 2.0 data frames <can_id>#R{len} for 'classic' CAN 2.0 data frames <can_id>##<flags>{data} for CAN FD frames
<can_id>: 3 (SFF) or 8 (EFF) hex chars {data}: 0..8 (0..64 CAN FD) ASCII hex-values (optionally separated by '.') {len}: an optional 0..8 value as RTR frames can contain a valid dlc field <flags>: a single ASCII Hex value (0 .. F) which defines canfd_frame.flags
$ candump --help candump: invalid option -- '-' candump - dump CAN bus traffic.
Usage: candump [options] <CAN interface>+ (use CTRL-C to terminate candump)
Options: -t <type> (timestamp: (a)bsolute/(d)elta/(z)ero/(A)bsolute w date) -H (read hardware timestamps instead of system timestamps) -c (increment color mode level) -i (binary output - may exceed 80 chars/line) -a (enable additional ASCII output) -S (swap byte order in printed CAN data[] - marked with '`' ) -s <level> (silent mode - 0: off (default) 1: animation 2: silent) -l (log CAN-frames into file. Sets '-s 2' by default) -L (use log file format on stdout) -n <count> (terminate after reception of <count> CAN frames) -r <size> (set socket receive buffer to <size>) -D (Don't exit if a "detected" can device goes down. -d (monitor dropped CAN frames) -e (dump CAN error frames in human-readable format) -x (print extra message infos, rx/tx brs esi) -T <msecs> (terminate after <msecs> without any reception)
Up to 16 CAN interfaces with optional filter sets can be specified on the commandline in the form: <ifname>[,filter]*
Filters: Comma separated filters can be specified for each given CAN interface: <can_id>:<can_mask> (matches when <received_can_id> & mask == can_id & mask) <can_id>~<can_mask> (matches when <received_can_id> & mask != can_id & mask) #<error_mask> (set error frame filter, see include/linux/can/error.h) [j|J] (join the given CAN filters - logical AND semantic)
CAN IDs, masks and data content are given and expected in hexadecimal values. When the can_id is 8 digits long the CAN_EFF_FLAG is set for 29 bit EFF format. Without any given filter all data frames are received ('0:0' default filter).
Use interface name 'any' to receive from all CAN interfaces.
candump -l any,0~0,#FFFFFFFF (log only error frames but no(!) data frames) candump -l any,0:0,#FFFFFFFF (log error frames and also all data frames) candump vcan2,12345678:DFFFFFFF (match only for extended CAN ID 12345678) candump vcan2,123:7FF (matches CAN ID 123 - including EFF and RTR frames) candump vcan2,123:C00007FF (matches CAN ID 123 - only SFF and non-RTR frames)
정리하면.. 모션 시뮬레이터에서는 roll과 pitch로 운전석의 기울기를 표현하면 될 것 같고
yaw의 미분 값의 방향으로 시계, 반시계 방향의 운동량을 표현하면 될 것 같다.
가속도 값으로는 z 축은 의자 자체를 떨구거나 올리기 힘들테니 6축 아니면 힘들 것 같고
x 축은 앞뒤로 기울기고
y 축은 좌우로 기울이면 될테니
사용자가 느끼는 관성의 방향은
x 축 <-> yaw,
y 축 <-> pitch 와는 반대의 방향으로 나타나게 되겠네?
그러면.. 감각을 속이려면 yaw, roll 보단
x,y 가속도 값이 더 중요할 것 같다.
Vertical axis (yaw) The yaw axis has its origin at the center of gravity and is directed towards the bottom of the aircraft, perpendicular to the wings and to the fuselage reference line. Motion about this axis is called yaw. A positive yawing motion moves the nose of the aircraft to the right.[1][2] The rudder is the primary control of yaw.[3]
The term yaw was originally applied in sailing, and referred to the motion of an unsteady ship rotating about its vertical axis. Its etymology is uncertain.[4]
Lateral axis (pitch) The pitch axis (also called transverse or lateral axis),[5] passes through an aircraft from wingtip to wingtip. Rotation about this axis is called pitch. Pitch changes the vertical direction that the aircraft's nose is pointing (a positive pitching motion raises the nose of the aircraft and lowers the tail). The elevators are the primary control surfaces for pitch.[3]
Longitudinal axis (roll) The roll axis (or longitudinal axis[5]) has its origin at the center of gravity and is directed forward, parallel to the fuselage reference line. Motion about this axis is called roll. An angular displacement about this axis is called bank.[3] A positive rolling motion lifts the left wing and lowers the right wing. The pilot rolls by increasing the lift on one wing and decreasing it on the other. This changes the bank angle.[6] The ailerons are the primary control of bank. The rudder also has a secondary effect on bank.[7]