'CAN Bus' is a general term; are you using DeviceNet, or CANOpen, or some other CAN protocol ?
CompactLogix has no built-in CAN port, so you'll need a 'scanner card' for whatever protocol you are using.
I recently saw a presentation on some EtherNet/IP encoders that can be used with ControlLogix or CompactLogix motion control as auxiliary axes. Pretty neat !