Usually every emulator does offer some gateway settings like:
Satchannel CAID XXXX -> use card 1
Cablechannel CAID YYYY -> use card 2
at the moment your settings are wrong. The emulator will ask every card for a cw.
There is no emu that I know, which ask every card (card = caid) for a codeword. The ecm is only send to cards if the caid of the stream matches the caid of the reader. It depends on the cable provider, if he does not stream sat caids (usual in Germany) or even uses his own card (=caid) which are not available via satellite there is no problem at all. So obviously UPC transmit sat-caids otherwise there would be no problem.
Within Oscam you can stick srvids (service ids = "specific channels") to a reader also when they use the same caid you can specify which reader is used.
If your cards uses different caids (thats still possible, even if your cable provider serve all caids in the signal) and when you are using dvbapi-mode, you can create a oscam.dvbapi file to specify which caid is used for specified srvids, otherwise you can use oscam.services-file to stick srvids to a specific reader even if both cs-server cards/readers uses the same caid.
For Oscam (and also MPCS) you find good explanations and exampes of configuration on
http://www.streamboard.tv/wiki/Hauptseite (several languages)