µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

»ªÖÐÊý¿ØÊÀ¼ÍÐÇPLC±à³Ì˵Ã÷Êé

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/10/20 13:34:51 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

»ªÖÐÊý¿ØPLC±à³Ì˵Ã÷Êé

¸Ãº¯Êý·µ»Ø1±íʾָ¶¨ÖáÒÑÍ£Ö¹Ô˶¯£»·µ»Ø0±íʾÖáÕýÔÚÒÆ¶¯

µÚÁùÕ ¸¨ÖúÖ¸ÁîM¡¢S¡¢T¡¢BµÄ¿ØÖÆ

ÔÚPLC³ÌÐòÖУ¬¶Ô¸¨ÖúÖ¸Áî½øÐпØÖÆÉæ¼°µ½¸¨ÖúÖ¸ÁîÏìÓ¦º¯Êý¼°Æä³õʼ»¯¡¢PLCÓëÊý¿ØÏµÍ³µÄͨÐŵȹý³Ì¡£±¾Õ½«Ê¾Àý˵Ã÷¶Ô¸¨ÖúÖ¸ÁîµÄ¿ØÖÆ·½·¨¡£ Êý¿ØÏµÍ³ÔÚ×Ô¶¯ÔËÐйý³ÌÖÐÅöµ½¸¨ÖúÖ¸ÁîMSTBʱ£¬½«ÏòPLC·¢ËÍMSTBÖ¸ÁîÐźš¢µ÷ÓÃÏàÓ¦µÄÏìÓ¦º¯Êý²¢µÈ´ýPLC¸ø³ö¶¯×÷Íê³ÉµÄÓ¦´ðÐźš£MSTBÏìÓ¦º¯ÊýÔÚÖ´ÐÐÍêÏà¹Ø¶¯×÷ºó£¬Ó¦ÏòÊý¿ØÏµÍ³¸ø³öÓ¦´ðÐźţ¬·ñÔòÊý¿ØÏµÍ³½«Ò»Ö±µÈ´ý¡£

PLCÏòÊý¿ØÏµÍ³¸ø³öÓ¦´ðÐźÅÓÐÁ½ÖÖ·½Ê½£º

1) PLCÔÚÍê³ÉËùÓÐÏàÓ¦¶¯×÷ºóÔÙ¸ø³öÓ¦´ðÐźţ»

2) PLC¼Ç¼ÏÂÏàÓ¦Ö¸ÁÂíÉϸø³öÓ¦´ðÐźţ¬È»ºóÔÙÖ´ÐÐÏàÓ¦¶¯×÷¡£

6.1 ¸¨ÖúÖ¸ÁîÏìÓ¦º¯Êý¼°Æä³õʼ»¯

Êý¿ØÏµÍ³ÔÚ×Ô¶¯ÔËÐйý³ÌÖÐÅöµ½¸¨ÖúÖ¸ÁîMSTBʱ£¬½«ÏòPLC·¢ËÍMSTBÖ¸ÁîÐźŲ¢µ÷ÓÃÏàÓ¦µÄÏìÓ¦º¯Êý¡£ÕâЩÏìÓ¦º¯Êý±ØÐëÔÚPLC³õʼ»¯Ê±£¬¼´ÔÚº¯Êýinit()ÖУ¬µ÷Óú¯Êýset_mst_func()À´Ö¸¶¨£¬Èç¹û²»Ö¸¶¨£¬ÏµÍ³½«µ÷ÓÃȱʡµÄÏìÓ¦º¯Êý£¬¸Ãº¯Êý½«¶ÔMSTBÖ¸Áî²»×÷ʵ¼Ê´¦Àí£¬Ö»ÊǶÔÊý¿ØÏµÍ³¸ø³ö¸¨ÖúÖ¸ÁîÖ´ÐÐÍêµÄÐźš£¸Ãº¯ÊýµÄÔ­ÐͶ¨ÒåΪ£º

void set_mst_func( int ch, //ͨµÀ char name, //´úÂëÀàÐÍ£ºM¡¢S¡¢T¡¢B¡¢E void (*mst_func)(int)); //ÏìÓ¦º¯ÊýµØÖ· PLC¸¨ÖúÖ¸ÁîµÄ³õʼ»¯¿ÉʾÀýÈçÏ£¬EÖ¸ÁîÉÔºó±ã»á˵Ã÷£º

void exec_M(int ch) { mod_M_code(ch)=-1; } void exec_S(int ch) { mod_M_code(ch)=-1; } void exec_T(int ch) { mod_M_code(ch)=-1; } void exec_B(int ch) { mod_M_code(ch)=-1; } void exec_MST_mod(int ch) { ; } void init(void) //ϵͳ³õʼ»¯³ÌÐò {

set_mst_func(0,'M',exec_M); //¸¨Öú¹¦ÄÜMÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'T',exec_T); //µ¶¿â¹¦ÄÜTÖ¸ÁîÏìÓ¦º¯ÊýÉèÖÃ

49

»ªÖÐÊý¿ØPLC±à³Ì˵Ã÷Êé

}

set_mst_func(0,'S',exec_S); //Ö÷ÖáËٶȹ¦ÄÜSÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'B',exec_B); //µ¶¿â¹¦ÄÜTÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'E',exec_MST_mod); //MSTģָ̬ÁîÏìÓ¦º¯ÊýÉèÖà ¡­¡­¡­¡­

6.2·ÃÎʸ¨ÖúÖ¸Áîģֵ̬

¶ÔÓÚMSTBµÄµ±Ç°ÃüÁîÖµ£¬¼´Êý¿Ø¼Ó¹¤³ÌÐò´«µÝ¹ýÀ´µÄ¸¨ÖúÖ¸ÁPLC³ÌÐò¿Éͨ¹ýÈçÏÂºê½øÐзÃÎÊ£º 6.2.1 ͨµÀµ±Ç°µÄM´úÂë

#define ch_M_code(x) (F_i[(x)*20+164]) //M´úÂë

ÆäÖкê²ÎÊýx±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£Àý£º

ͨµÀ0µ±Ç°µÄM´úÂëΪ ch_M_code(0) 6.2.2 ͨµÀµ±Ç°µÄT´úÂë

#define ch_T_code(x) (F_i[(x)*20+165]) //T´úÂë

ÆäÖкê²ÎÊýx±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ 6.2.3 ͨµÀµ±Ç°µÄB´úÂë

#define ch_B_code(x) (F_i[(x)*20+166]) //B´úÂë

ÆäÖкê²ÎÊýx±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ 6.2.4 ͨµÀµ±Ç°µÄS´úÂë

#define ch_S_code(x) (F_i[(x)*20+167]) //S´úÂë

ÆäÖкê²ÎÊýx±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£

6.3 ÔÚPLC³ÌÐòÖпØÖÆÏµÍ³¸¨ÖúÖ¸Áîģֵ̬ÓëϵͳӦ´ð

PLC³ÌÐò¿ÉÒÔ¸ü¸ÄÊý¿ØÏµÍ³µÄMSTBģֵ̬£¬¼´ÏòÊý¿ØÏµÍ³·¢Ë͸¨ÖúÖ¸Áî»òÆäÔËÐÐÇé¿ö¡£¾ßÌåʵÏÖÊǶԺêch_mst_mod(ch,x)½øÐи³ÖµÏà¹ØÖµ¡£Îª±ãÓÚ¼ÇÒä·½±ã£¬ÏµÍ³ÌṩÁËÈçϺê¶Ô¸¨ÖúÖ¸Áî½øÐпØÖÆ£º 6.3.1 ͨµÀµ±Ç°µÄM´úÂëģֵ̬

#define mod_M_code(ch)

(*ch_mst_mod(ch,0))//M´úÂëģʽ

50

»ªÖÐÊý¿ØPLC±à³Ì˵Ã÷Êé

ÆäÖкê²ÎÊých±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ 6.3.2 ͨµÀµ±Ç°µÄS´úÂëģֵ̬

#define mod_S_code(ch) (*ch_mst_mod(ch,1)) //S´úÂëģʽ

ÆäÖкê²ÎÊých±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ 6.3.3 ͨµÀµ±Ç°µÄT´úÂëģֵ̬

#define mod_T_code(ch)

(*ch_mst_mod(ch,2)) //T´úÂëģʽ

ÆäÖкê²ÎÊých±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ 6.3.4 ͨµÀµ±Ç°µÄB´úÂëģֵ̬

#define mod_B_code(ch) (*ch_mst_mod(ch,3))//B´úÂëģʽ

ÆäÖкê²ÎÊých±íʾͨµÀºÅ£¬ÆäÖµ¿ÉΪ0,1,2,3£¬¼´ÏµÍ³×î´ó¿ÉÓÐ4¸öͨµÀ¡£ µ±Ö´ÐС° *ch_mst_mod(ch,x) = -1¡±ºó£¬Êý¿ØÏµÍ³½«ÈÏΪÏà¹Ø¸¨ÖúÖ¸ÁîÖ´ÐÐÍê±Ï£¬²¢×Ô¶¯¼ÌÐøÖ´ÐÐÏÂÒ»ÌõÊý¿Ø¼Ó¹¤Ö¸Áî¡£ÈçÓï¾ä£º

mod_M_code(0)=-1

½«±íʾµ±Ç°M´úÂëÒÑÖ´ÐÐÍê³É£¬Êý¿ØÏµÍ³½«×Ô¶¯ÔËÐÐÏÂÒ»ÌõÖ¸Áî¡£

µ«Èç¹ûÔÚÕâ֮ǰÖñêÖ¾¡°*msthold_dis(ch)|=CH_M_HDIS¡±£¬Ò²¿ÉÈÃÊý¿ØÏµÍ³¼ÌÐøµÈ´ý£¬Ö±µ½PLCÇåµô¸Ã±êÖ¾¡£

Òò´Ë£¬PLCÒ»¶¨ÒªÔÚÏà¹Ø¸¨ÖúÖ¸ÁîÖ´ÐÐÍêºó£¬²ÅÄܽ«¶ÔÓ¦µÄģ̬±äÁ¿Öµ¸³ÖµÎª¡°-1¡±¡£ÔÚÓÐЩ³¡ºÏ£¬PLC¿ÉÒÔÔÚ²»Ö´ÐÐÍêÏà¹Ø¸¨ÖúÖ¸Áîʱ£¬ÈÃϵͳ¼ÌÐøÖ´ÐÐÏÂÒ»Ö¸Áî¡£Õâʱ£¬¿É¶Ô¸¨ÖúÖ¸ÁîµÄ»º³åģ̬½øÐи³Öµ£¬Ê¹µÃϵͳÏòPLC·¢ËÍ¡°E¡±Ö¸Á²¢Ö´ÐÐÏà¹Ø¸¨ÖúÖ¸Áî¡£

Àý£º PLC³õʼ»¯Ê±¿ÉÇ¿ÖÆÏµÍ³µÄÖ÷ÖáתËÙSΪ500ת/·ÖÖÓ¡£Êý¿ØÏµÍ³ÔÚ̽µÃSģֵ̬±»PLC¸Ä±äºó£¬»áÏòPLC·¢Ë͸¨ÖúÖ¸Áî¡°E¡±£¬²¢µ÷ÓÃÆä¶ÔÓ¦µÄÏìÓ¦º¯Êý¡£

#define mod_S_buf (*ch_mst_mod(0,7)) //δִÐÐÍêµÄSÖ¸Á³åÇø void exec_M(int ch) {; } void exec_T(int ch) {; } void exec_B(int ch) {; }

#define spdl_cmd R_ui[46/2] void exec_MST_mod(int ch) { if(ch==0) //ÉèϵͳֻÓÐ0ͨµÀ´æÔÚ spdl_cmd=mod_S_buf; // ±£´æÖ÷ÖáÃüÁÔÚÖ÷Öá¿ØÖÆÄ£¿éº¯ÊýÖÐÔÙ´¦Àí }

51

»ªÖÐÊý¿ØPLC±à³Ì˵Ã÷Êé

void exec_S(int ch) {//SÖ¸Áî´¦Àí if((mst_lock()==1)||(mod_S_code(ch)<0)) { //MSTËø×¡ mod_S_code(ch)=-1; return; } mod_S_buf=mod_S_code(ch); mod_S_code(ch)=-1; //¸æËßÊý¿ØÏµÍ³SÖ¸ÁîÖ´ÐÐÍê±Ï£¬¿É×Ô¶¯ÔËÐÐÏÂÌõÖ¸Áî }

void init(void) //ϵͳ³õʼ»¯³ÌÐò {

set_mst_func(0,'M',exec_M); //¸¨Öú¹¦ÄÜMÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'T',exec_T); //µ¶¿â¹¦ÄÜTÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'S',exec_S); //Ö÷ÖáËٶȹ¦ÄÜSÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'B',exec_B); //µ¶¿â¹¦ÄÜTÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà set_mst_func(0,'E',exec_MST_mod); //MSTģָ̬ÁîÏìÓ¦º¯ÊýÉèÖà mod_S_buf=500; ¡­¡­¡­¡­¡­ }

6.4 ¸¨ÖúÖ¸Áî¿ØÖÆÊ¾Àý

»»µ¶TÖ¸ÁîµÄ¿ØÖƿɲμûµÚËÄÕµڽڵÄʾÀý¡£±¾½Ú½«¸ø³öM´úÂë¿ØÖÆµÄʾÀý¡£S´úÂëµÄ¿ØÖÆÊ¾Àý½«ÔÚµÚ°ËÕ¸ø³ö¡£

¡­¡­¡­¡­

void exec_M(int ch); void init(void) //ϵͳ³õʼ»¯³ÌÐò {

set_mst_func(0,'M',exec_M); //¸¨Öú¹¦ÄÜMÖ¸ÁîÏìÓ¦º¯ÊýÉèÖà ¡­¡­¡­¡­ }

void exec_M(int ch) { unsigned den; if(mac_lock()||mst_lock()) //»ú´²Ëø×¡»òMSTËø×¡ { mod_M_code(ch)= -1; //M´úÂëÍ£ return; }

52

ËÑË÷¸ü¶à¹ØÓÚ£º »ªÖÐÊý¿ØÊÀ¼ÍÐÇPLC±à³Ì˵Ã÷Êé µÄÎĵµ
»ªÖÐÊý¿ØÊÀ¼ÍÐÇPLC±à³Ì˵Ã÷Êé.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c2rowi28c2a4bptb10m4e_13.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©

Ïà¹ØÍÆ¼ö£º

ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top