安全生产
首页资讯供应求购招商招聘展会社区
长期信息合作请联系:QQ66821730
PLC技术首页-->PLC基础plc应用PLC文案资料PLC手册国标规程plc资料下载技术培训人才招聘职业认证产品商情论坛
PLC搜索
我 要 找
标题 内容 作者
PLCRSS订阅PLC技术信息
电工技术资料 您的位置: 机电之家-->plc技术资料栏目首页-> PLC基础 -> PLC通信 --> 用C语言实现PLC和上位机的串行通讯
阅读plc技术相关资料
用C语言实现PLC和上位机的串行通讯
本文作者 不详 摘自 机电之家

 

1  原理分析
    本文以三菱meclec a系列plc为例,讨论用c语言实现通讯的方法。
    (1) plc串行通信
    三菱a系列plc串行通信模式,plc中有2个rs-232异步通信串行接口,能方便用于双机、多机之间的通信,其通信模式有ascii和rtu两种方式。ascii模式下,信息是以冒号(:)字符表示帧的开始,cr(回车)、lf(换行)表示帧的结吏,换行符同时也起同步符作用,表示发送方已准备好接受即时应答。rtu(远程终端设备)模式下,帧的同步模拟同步报文来保持,即以字符间隔时间为起始位,若3.5个字符时间未收到新字符或帧尾,则刷新原值且以下-个接受到的字节为地址进行通信数据的接收。rtu报文的帧结构如表1所示。


    本文以rtu模式为例加以分析。rtu模式下,采用标准为八个数据位(低位在前,高位在后)1个奇偶校验位和1个停止位。
    (2) uart基本特性分析
    微机实现异步通信是依靠适配器来完成的,而后者又是以uart芯片,即通用异步收发器芯片为核心构成的。
ibm pc的异步通信适配器使用的uart芯片为ins 8250。它是40引脚双列直插式封装的可编程异步通信接口芯片。现将8250中几个寄存器介绍如下(端口地址仅以com1为例)
a) 线路控制寄存器(端口地址3fb)
此寄存器用来设置通信参数。各位作用如下所示:
位(bit)                含义
 0 字符长度(低位)
 1 字符长度(高位)
 2 停止位位数
 3 奇偶校验允许
 4 奇偶性选择
 5 固定校验位选择
 6 设置停顿
 7 除数寄存器访问位
寄存器中字长的选择
位0 位1 字长
 0 0 5
 0 1 6
 1 0 7
 1 1 8
b) 线路状态寄存器(端口地址3fd)
此寄存器用来获得有关接收和发送数据的信息。各位作用如下所示
位(bit)            置为1时的含义
0 字符以接收到且放在接收缓冲寄存器中
1 接收缓冲寄存器中原有数据在读出之前
 被新来数据破坏
2 输入字符奇偶校验错
3 输入字符停止位错
4 收到停顿信号(break)
5 uart以准备好接受下一个新的待发送字符
6 待传送字符以发出
7 不用
c) 除数寄存器(高位字节端口地址3f9,地位字节端口地址3f8)
波特率    十六进制数  低位字节   高位字节
2400       60h         0           60
4800       18h         0           18
9600       0ch         0           0c

2  应用研究
我们在开发低成本集散系统中,研究了plc与上位机ibm pc486之间的串行通信。
我们应用的plc具有模拟量输入和输出以及内嵌pid控制算法等功能。在工程现场,plc可针对被控制量的变化情况利用内嵌pid控制算法自动完成对调节回路中被控对象的控制。有时上位机需要了解现场参数,并进行pid算法的参数调整,这就要求plc和上位机之间能进行通信。而数据传送采用的波特率为9600bps,二进制方式。通信口的程序清单如下:
commini(int baud hi, int baud lo,int mode)

outportb(ox 3fb,ox,8o);//允许访问除数寄存器,以改变波特率//
outportb(ox 3f8,baud lo);//设置波特率低位//
outportb(ox 3f9,baud hi);//设置波特率高位//
outportb(ox 3fb,mode);//设置为读写方式,mode为1bh时,设置通信口为8个数据位,1个停止位,一个偶校验位//

通信子程序清单如下:
comm(int irt,int comm num, unsigned char data[ ])

int i, count, j;
switch(irt)

case 1;
for (i=0; i
++)

count=0
while(((inportb (ox3fb)&ox 01)=0) &(count<1000)
count=count+1
if(count=1000)

sound(10)
delay(2)
nosound( );
break:

else
comm datal[1]inportb
(ox3f8);

break;
case2;
for(i=0;i

count=0;
while(((inportb (ox3fd) &(ox20)=0)&(count<3000))
count=count+1;
if (count=3000)

sound(2500);
delay(100)
nosound( );
break;

else
outportb(ox3f8,data[i]);

break;
default;
printf("%s"  "your command is wrong");

3  结束语
    本文所述方法和程序是我们设计开发工作中的一部分,在dos和windows环境下应用效果良好。文中所列程序稍加改动就可应用到其他类型的通信系统中。



有搞不定的程序,交给机电之家吧!去悬赏竞标
 用C语言实现PLC和上位机的串行通讯 相关资料
  • 用三菱的FX2N PLC实现N:N网络(令牌总线)
  • PLC程序调试步骤
  • 三菱PLC的几个常见问题解答
  • PLC内置高速计数器的简单应用介绍
  • PC与FX30DUE传输数据办法
  • 变频器逆变器件的原理
  • 三菱PLC程序编写注意事项一例
  • 三菱FX,A,QnA系列PLC特殊寄存器查询软件
  • 三菱FX2N系列PLC与Profibus的连接
  • 计数器级联PLC程序梯形图 
  • ⊕这地方投资政策最优
    ⊕上千份机电行业研究报告
    ⊕机电项目招商啦
    ⊕谁把我买了?
    ⊕机电行业展会大全
    ⊕十万企业抢登行业网址大全
    机电之家会议开通
    ⊕每日最新求购信息
    ⊕电工技术资料为了谁?
    ⊕机电设备维修与管理
    机电之家(中国)plc技术资料中心资讯版权声明:
    1、凡注明“机电之家采编”字样的所有作品均系本网原创,版权归机电之家所有,任何媒体摘编或享用本作品,需注明文章来源。违反声明者,本网将追究其相关法律责任。
    2、凡本网注明“来源:XXX网(非本网)”的作品,均转载自其他媒体,目的在于传达更多资讯,本网不承担相关法律责任。

    3、如在资讯、广告等方面想与本网合作,请致电:0571-87774297。Email:donemi@hz.cn

    ·工程项目经理培训
    ·欧姆龙PLC编程维护培训
    ·杭州西门子PLC应用培训
    ·模具加工设计培训
    ·变频器维修培训
    ·安全员认证培训
    ·电工培训


    ·招聘项目管理人员
    ·首席技术执行官
    ·自控工程师
    ·数控编程学徒
    ·总工程师

    项目竞标

    最新商业情报
    代理
    [代理] 寻求地区代理
    [代理] 电工产品诚招代理..
    采购
    [采购] 电动车控制器外壳
    [采购] 高品质缓冲器
    论坛最新话题
    ·超级搞笑的安全事故
    ·电工技术资料flash大全
    ·最新的搞笑图片
    ·工控行业应用软件下载
    首页
    首页
    合作网站:
    | 中国机电网机电之家安全生产网 | 机电论文 | 机电论坛 | 机电设备贸易 | 机电网址大全 | 浙江机电网 | 陕西机电网 | 变频器技术网 |
    中国电工网 | 电工网 |环球会展网机电产品网 | 机电人才网 | 中国工控网 | 五金工具网 | 安全生产网 | 甘肃机电网 | PLC技术网 |
    友情连接:
    | 中国机电网 | 中国工控网 | 行业培训网 | 中国工程机械网 | 机电一体化网 | 行业下载网 | 行业国标网 | 商业情报站 |
    关于我们 | 联系我们 | 广告联系 | 付款方式 | 使用帮助 | PLC技术网 | 会员助手 | 友情链接
    电话:0571-87774297(杭州) 传真:0571-87774298(杭州)点击这里给我发消息66821730(技术) 点击这里给我发消息58733127(审核)
    机电之家 PLC技术网 站所共享的PLC知识,PLC技术,PLC应用,PLC行情分析,PLC学习资料,PLC国标规程,PLC维修知识,
    PLC国家标准,PLC操作规程,PLC岗位职责,PLC管理制度,PLC工作总结,PLC实习报告,PLC考试题库,
    等都是来自会员发表或 网上收集整理。如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。
    企业登陆可自行免费发布资料,本站代发布邮箱为88ctv@163.com
    Copyright 2007 plc.jdzj.com Inc All Rights Reserved.PLC技术网
    chinaplc.net 联合建设
    技术支持:PLC技术网 mailto:88ctv@163.com
    免费发布信息主办:浙江-杭州-PLC技术网网络运营部安全生产