您现在所在的是:

PLC论坛

回帖:10个,阅读:5251 [上一页] [1] [2] [下一页]
951
Rockey99
文章数:12
年度积分:50
历史总积分:951
注册时间:2003/3/17
发站内信
发表于:2003/5/5 13:51:00
#0楼
各位:
    我是一个将要毕业的大四学生,我的毕业设计的题目是“基于PLC的通信控制”,是pc与plc之间的通信。
    我用的plc是omron的CQM1. 我用C语言编了一个程序。但在执行是,计算机就弹出“系统无法打开应用程序要求的COM1口”,我试过换成COM2口,也不行。我反复检查过通信协议,没问题。我用CX-Programmer里的一个梯形图Trafficlights,它可以成功下载到PLC里,但,当我用基于C语言编的通信程序去执行一些命令时,就出现了我所说的情况。
    请给我点指点吧!!!!!!
   
   EMAIL:yuan-rocket@163.net
   盼复!
5581
心情 版主
文章数:1633
年度积分:50
历史总积分:5581
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2003/5/5 14:29:00
#1楼
OMRON PLC的通讯格式:9600,7,E,2。只要你这些设置OK了就应该可以通讯了
951
Rockey99
文章数:12
年度积分:50
历史总积分:951
注册时间:2003/3/17
发站内信
发表于:2003/5/5 15:03:00
#2楼
CQM1里没有好像C200H 那样的DIP开关设置,只要设置好每个SW就可以。那它是否只能通过CX-programmer 来设置通信协议?我已经在CX-programmer 上这样子做了“9600,7,E,2”, 同时我也用C语言分别编了一下的程序,都不行,同样出现“系统无法打开应用程序要求的COM1口”。我百思不得其解???????

第一个:
/* PlC-PC serial communication progam */
#include<dos.h>
#define com1 0
int bioscom(int cmd,char abyte,int port);
/*initialize the com*/
main()
{
int j;
clrscr();
j=bioscom(0,0xfe,com1);
printf("the statu of the port after being initialized is %x\n",j);
j=bioscom(3,0xfe,com1);
printf("%x",j);
getch();
}

另外一个:
/*initialize the seril port*/
#include "dos.h"
void portinit(int port,unsigned char code)
{
union REGS r;
r.x.dx=port;
r.h.ah=0;
r.h.al=code;
int86(0x14,&r,&r);
printf("\nthe statu of port after being initialized is %x\n",r.h.ah);
}
/*test the port if it can be opened with the portinit only*/
void portinit(int port,unsigned char code);
main()
{
 union REGS r ;
 int port=0;
 unsigned char code=0xfe;
 portinit(port,code);
 getch();
}
5581
心情 版主
文章数:1633
年度积分:50
历史总积分:5581
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2003/5/5 17:40:00
#3楼
我不懂C语言,只是看到在VB中直接将串口设置其通格式就成了,CQM1里不用设置的。
也许你的串口已给别的所用了?不该连不通啊
951
Rockey99
文章数:12
年度积分:50
历史总积分:951
注册时间:2003/3/17
发站内信
发表于:2003/5/8 1:12:00
#4楼
有哪位前辈师傅可以指点我的? 差不多一个星期已经过去了,我还是差不到原因。
如果可以的话,我想带上我的CQM1 PLC 和我的程序,亲自去请教。
   


                                                           
5581
心情 版主
文章数:1633
年度积分:50
历史总积分:5581
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2003/5/8 13:08:00
#5楼
你通讯口的参数设置在哪里?怎么不参考相关的VB程序啊,我想应该差不多的


[此贴子已经被作者于2003-5-8 13:09:33编辑过]
951
Rockey99
文章数:12
年度积分:50
历史总积分:951
注册时间:2003/3/17
发站内信
发表于:2003/5/8 17:44:00
#6楼
一个:我是用bioscom(0,0xfe,com1)函数设置通讯口参数的。
另外一个:是用void portinit(int port,unsigned char code)
{
union REGS r;
r.x.dx=port;     /*串口号*/
r.h.ah=0;         /*表示初始化功能*/
r.h.al=code;     /*初始化参数AL*/
int86(0x14,&r,&r);   /*INT 14 功能调用*/
printf("\nthe statu of port after being initialized is %x\n",r.h.ah);
}

5581
心情 版主
文章数:1633
年度积分:50
历史总积分:5581
注册时间:2001/6/6
发站内信
09工控人生征文
发表于:2003/5/9 8:44:00
#7楼
设置好之后,再打开串口,缓存清零
通讯之后,关闭串口
935
ican
文章数:17
年度积分:50
历史总积分:935
注册时间:2005/8/2
发站内信
发表于:2005/8/2 3:11:00
#8楼
设置com口的软件,可以任意设置COM1....COM8

www.peijian.com.cn/bbs
www.PeiJian.com.cn/bbs
9012
吴辉
文章数:2351
年度积分:50
历史总积分:9012
注册时间:2002/1/15
发站内信
发表于:2005/8/2 8:35:00
#9楼
弄个串口调试程序,设置通讯参数,发个cs命令,正确返回,你的c程序错!
没反应,你的硬件连接有问题,或plc端设置有问题!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004