I have a CANopen slave stack. Is it possible to implement both the CANopen master and slave functionalities using the same stack? Or is a separate master stack required?
In CAN and CANopen, technically any node on the bus can be a server, a client, or both. Code-wise, I don't see a reason why one stack couldn't handle both the server and client duties. But if I understand your question, you are not writing the stack yourself, and you are merely using someone else's; it is provided as "slave only" and perhaps it has been implemented to only send TPDOs in an event-driven mode (other than the objects that your device's respective standard requires)?
If so, then I don't see how you can use it to make your device act as a master and just ask any node on the network for specific object data. If not, then I would definitely try to make your stack enable your device to act as a master and a slave, because I'm not aware of any technical hurdles that would prevent this. Hopefully I haven't misunderstood your question.