#1: It looks like you also present <port> stimuli via the /stimulustimes attribute. You *must* make sure to also reset all those raised bits to zero after a short amount of time in /stimulustimes. Otherwise the signal will *remain raised* and mask the <port> signals you are trying to send via /responsemessage. See e.g. this example:
https://www.millisecond.com/forums/FindPost15055.aspx#2: You should set a sufficient minimum duration in your /responsemessage attributes. Otherwise the signal may not be raised long enough for your external equipment to detect it.
/responsemessage = (values.correctresponse, signal_response_correct,
0)
#3: Also, the syntax in your /responsemessage attributes is wrong. You cannot use variables in it:
/responsemessage = (
values.correctresponse, signal_response_correct, 0)
The right thing to do is to use the /correct- and /errormessage attributes instead. I.e.
<trial block1_congruent>
...
/responsemessage = (values.correctresponse, signal_response_correct, 0)
/responsemessage = (values.errorresponse, signal_response_error, 0)/ correctmessage = (signal_response_correct, 100)
/ errormessage = (signal_response_error, 100)
/responseinterrupt = trial
/trialduration = values.iti_congruent
...
</trial>