Új hozzászólás Aktív témák

  • And

    veterán

    válasz kip.kop #1497 üzenetére

    Persze hogy nem hajtja végre mindhármat, hiszen nem gondoskodtál arról, hogy ne egy futási cikluson belül indítsa a három kérést. Lásd a 479. oldalon: "If several messages are sent in the same cycle, only the first message is transmitted. The user is responsible for managing the transmission of several messages using the program."
    Tehát neked kell gondoskodnod a lekérések 'elosztásáról'. Azon az oldalon találsz egy példát is, amely két üzenetet kezel, és egy jelzőbittel (%M0-val) irányítják a forgalmat: az első üzenettel párhuzamosan beállítják ezt a flag-et, és majd ez engedélyezi a másodikat, ha az első véget ért. Ugyanígy a második üzenet küldésekor törlik a jelzést, ami pedig az első üzenet végrahajtásának a feltétele. Ha kettőnél több üzenetet kezel a program, akkor nyilván nem elegendő egyetlen bit a jelzéshez, hanem létre kell hoznod egy számlálót: ezt az egyes üzenetek sikeres elküldésekor szépen inkrementálod, majd ha az utolsó is kész, akkor kinullázod. Az egyes lekérésekhez pedig a %MSG.D bittel ÉS kapcsolatban feltételként hozzárendeled, hogy a számláló a megfelelő (három EXCHx esetén: 0, 1, 2) értékű legyen.

Új hozzászólás Aktív témák