社区
网络及通讯开发
帖子详情
请较高收如何使用BCB 向PLC 断口发送数据
likekite
2006-11-28 12:19:58
请较高收如何使用BCB 向PLC 断口发送数据
通过BCB 内程序控制PLC 的某些触点动作。 PLC 我刚刚学,还不知从哪入手
关于校验和输入输出程序能不能给出源代码?
十分感谢!
...全文
265
10
打赏
收藏
请较高收如何使用BCB 向PLC 断口发送数据
请较高收如何使用BCB 向PLC 断口发送数据 通过BCB 内程序控制PLC 的某些触点动作。 PLC 我刚刚学,还不知从哪入手 关于校验和输入输出程序能不能给出源代码? 十分感谢!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
likekite
2007-04-09
打赏
举报
回复
以下代码调试已通过,请大家参考
/---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
HANDLE hComm;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *ComNo;
DCB dcb;
String Temp;
Temp="COM"+IntToStr(rdCOM->ItemIndex+1);
ComNo=Temp.c_str();
hComm=CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if(hComm==INVALID_HANDLE_VALUE)
{
MessageBox(0," 打开通信端口错误!","Comm Error",MB_OK);
return;
}
GetCommState(hComm,&dcb);
dcb.BaudRate=CBR_9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=ONESTOPBIT;
if(!SetCommState(hComm,&dcb))
{
MessageBox(0,"通信端口设置错误!!!","Set Error",MB_OK);
CloseHandle(hComm);
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
String Temp;
char *SendData;
int ln;
unsigned long lrc,BS;
if(hComm==0) return;
Temp=mSend->Text;
SendData=Temp.c_str();
BS=Temp.Length();
WriteFile(hComm,SendData,BS,&lrc,NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
String Temp;
char inbuff[1024];
DWORD nBytesRead,dwEvent,dwError;
COMSTAT cs;
ClearCommError(hComm,&dwError,&cs);
if(cs.cbInQue>sizeof(inbuff))
{
PurgeComm(hComm,PURGE_RXCLEAR);
return;
}
ReadFile(hComm,inbuff,cs.cbInQue,&nBytesRead,NULL);
inbuff[cs.cbInQue]='\0';
mReceive->Text=inbuff;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(hComm!=INVALID_HANDLE_VALUE)
CloseHandle(hComm);
exit(EXIT_SUCCESS);
}
wz
2006-12-09
打赏
举报
回复
顶
tree2000
2006-12-09
打赏
举报
回复
不是在PLC中把程序寫好了嗎?只是在傳輸程序的時候才用到COM口,如果要在控制的過程中修改參數,那要找到PLC廠家的協議才行,不知哪有,可找供應商要,不過,不是萬不得已還是不要用PC來控制PLC,不知道你得系統是怎樣的。
yhec
2006-12-09
打赏
举报
回复
我最近在搞OMRON PLC与触摸屏NT631C之间的通讯,这更有用些。
我以前一直搞C++BUILDER,后改行搞工控,专学PLC,进步很大。
yhec
2006-12-09
打赏
举报
回复
我一直在搞PLC,用C++BUILDER与PLC通过串口通讯,有点勉强,
因为它的串口协议不是开放的。BCB不适合用于工控,因为工控
系统有许多成熟的工具,你如果用西门子PLC,用WINCC及以太网
协议更方便。
gfh_79_0
2006-12-09
打赏
举报
回复
先研究好PLC,写好PLC的程序
然后通过通讯与PLC交换数据就可以了
likekite
2006-12-07
打赏
举报
回复
能否给出详细信息?
wangxiangsjz
2006-11-30
打赏
举报
回复
BCB下用SPCOMM控件来实现RS232操作.
likekite
2006-11-29
打赏
举报
回复
BCB 下的程序如何设置哪?
vc8fans
2006-11-29
打赏
举报
回复
RS232串口,通讯协议那还要看PLC手册了,
如果要多串口,可使用一些厂商的TCP/IP-》转多串口也很方便
【C++】日期类Date(详解)
本篇主要内容:日期类的实现和const成员上篇我们介绍了拷贝构造函数和赋值运算符重载两大类的默认成员函数,本篇将会介绍更多关于操作符重载的实例运用。日期类,是与日期相关的类,主要用于处理与日期和时间相关的操作。我们将在完善一个日期类的过程中加深对运算符重载的理解和运用。在理解操作符重载之后,最后两个默认成员函数学习起来也就不是什么大问题了。本篇博客实现了日期类Date,加深对运算符重载的运用,讲了前置++和后置++:传一个改变成后置++样式的int;
【C++深入浅出】日期类的实现
通过前面两期类和对象的学习,我们已经对C++的类有了一定的了解。本期我们的目标是实现一个完整的日期类,通过实现日期类的构造函数、运算符重载等等内容,加深对前面知识的理解。实现了日期类之后,我们就相当于自己实现了一个网上的日期计算器,如计算几天后的日期,计算日期差。
『C++成长记』日期类的实现
完整实现日期类
【C++】实现日期类相关接口
本篇将介绍实现日期类中众多接口,同时这其中涉及到很多知识,务必将类和对象相关内容掌握再来实现日期类相关接口。
C++:日期类的实现
前面几篇讲了关于类和对象的一些知识,本篇就来实现一下前面用到的日期类。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章