Is it possible to use J1939 and CANOpen on the same bus?
From a general point of view, then no, don't do this. For the following reasons:


It will be a real-time nightmare.
J1939 and CANopen aren't really compatible. At best, they can be made to tolerate each other at the same bus.
CANopen supports both 11 and 29 bit identifiers and you can't rule out identifier collisions.
Certain CAN nodes don't distinguish between 11 or 29 bit internally. So if you send 0x1 with 11 bit identifer, it might be treated equivalent to 0x1 with 29 bit identifier.
All 29 bit identifiers will have lower bus arbitration priority than their 11 bit equivalents, regardless of how critical they are.


If you are a CAN bus system design veteran (and only then), it is theoretically possible to combine them. It is a really bad idea but it can be done. You will need to create a full list of every CAN identifier that can exist on the bus and you need to have the timing requirements of every single package in mind. You need to perform bus load calculations and consider which messages that are critical. 

Also, at least CANopen is flexible enough to accept 8 byte data packages with a custom identifier as PDOs, even though they aren't actually coming from a CANopen node. That's usually how you integrate non-standard/OEM nodes into a CANopen network.