yayahello 发表于 2010-7-8 11:43:55

51单片机与三菱PLCFX2N通信问题!请各位帮帮忙啊

我刚接触PLC,想用51单片机与PLC用串口通讯,9600的波特率,1位开始位,7位数据位,1位偶校验,1位停止位,程序很简单,就是想让PLC的Y1置位
#include <REG52.H>                           
#define uchar unsigned char
#define uint unsigned int
unsigned int temp={0x02,0x37,0x30,0x31,0x30,0x35,0x03,0x30,0x30};
                           
void main ()
{

        unsigned int i;
    SCON= 0x50;                        
    TMOD |= 0x20;               
    TH1   = 0xFD;               
    TR1   = 1;                                    
    EA    = 1;                  
                  
while (1)                     
    {
        for(i=0;i<9;i++)
                {
                        ACC=temp;
                        CY=P;
                        TB8=CY;
                        SBUF=ACC;               
                           while(!TI);
                          TI=0;
                       
            }
        if(i==9)while(1);
        }
}
可是PLC一点反应都没有,大家帮忙看看是怎么回事啊

yayahello 发表于 2010-7-8 15:35:38

哈哈 看来问题还得我自己解决啊被我搞定了
#include <REG52.H>                           
#define uchar unsigned char
#define uint unsigned int
unsigned int temp={0x02,0x37,0x30,0x31,0x30,0x35,0x03,0x30,0x30};
sbit LED = P1^0;                           
void main ()
{

        unsigned int i,mm,y;
    SCON= 0x50;                        
    TMOD |= 0x20;               
    TH1   = 0xFD;               
    TR1   = 1;                                    
    EA    = 1;                  
                  
while (1)                     
    {
        for(i=0;i<9;i++)
                {
                        ACC=temp;                       
                        CY=P;                       
                        TB8=CY;
                        y=ACC&0x7f;
                        mm=0x00|TB8;
                        mm=mm<<7;                               
                        SBUF=y|mm;               
                           while(!TI);
                          TI=0;
                       
            }
        if(i==9)while(1);
        }
}
刚开始偶校验这几行我就没弄太明白,
ACC=temp;
CY=P;
TB8=CY;
SBUF=ACC;
这是我在网上搜的,人家都说偶校验是这么写的,可实验证明这是不对的,经过我的改正
                           ACC=temp;                       
                        CY=P;                       
                        TB8=CY;
                        y=ACC&0x7f;
                        mm=0x00|TB8;
                        mm=mm<<7;                               
                        SBUF=y|mm;
现在已经能给PLC置位啦   哈哈这一天总算是有点成果啦

wkman 发表于 2010-7-11 18:01:12

是用来读取些个plc的参数吧,没用过,看看

yayahello 发表于 2010-7-12 19:36:18

回复【2楼】wkman 鱼片
-----------------------------------------------------------------------

不光是读取,给PLC里的D Y S等置位 读写数据 都行

data123 发表于 2010-11-5 21:11:50

大侠硬件怎么接线啊

zouge888 发表于 2011-6-23 20:50:58

是怎么连线的?

dnxbf 发表于 2011-9-11 09:59:11

楼主强,支持。

huzy2423 发表于 2011-11-19 21:36:40

mark这个有用

tangsizu 发表于 2012-5-4 19:33:30

不错不错

liaopinjia 发表于 2012-6-25 02:22:54

有时简单的PLC和单片机通讯,直接用IO口还方便点。
页: [1]
查看完整版本: 51单片机与三菱PLCFX2N通信问题!请各位帮帮忙啊