CLR(AlarmIndex)
XIC(input0)---ADD(1, AlarmIndex, AlarmIndex)
XIC(input1)---ADD(1, AlarmIndex, AlarmIndex)
.
.
.
XIC(input6)---ADD(1, AlarmIndex, AlarmIndex)
GEQ(AlarmIndex, 2)---OTE(Horn)
Basically, every scan clear out a tag that keeps track of the number of currently active alarms (AlarmIndex), and add to that tag 1 for every alarm that is active. Set a horn bit high if the tag is greater than or equal to 2.
If the inputs are members of an array, you could condense the code with an FSC, but in my opinion that is a bit overkill and unnecessarily complex for only 7 inputs.
Additionally, you could do an OTL instead of OTE for the horn or tie it into existing alarming as appropriate. If you OTL, just be sure to clear the bit on the first scan.
This is just a more verbose description of Ken's method.