您现在所在的是:

PLC论坛

回帖:1个,阅读:3169 [上一页] [1] [下一页]
990
coverlove
文章数:10
年度积分:50
历史总积分:990
注册时间:2003/9/14
发站内信
发表于:2003/9/14 15:43:00
#0楼
我使用施奈德的TWDLMDA20DRT PLC,采用串口232通讯, 在VC中开发PC与PLC的通讯程序,但是发送数据帧后,没有回应帧,不知道为什么?
下面是它的文档的部分说明,请高手指点:

ASCII帧
在ASCII模式中,以(:)号(ASCII3AH)表示信息开始,以回撤一换行键(CRLF) (ASCII OD和OAH)表示信息结束。
对其它的区,允许发送的字符为16进制字符0-9,A-F。网络中设备连续检测并接收一个冒号(:)时,每台设备对地址区解码,找出要寻址的设备。
字符之间的最大间隔为1S,若大于1S,则接收设备认为出现了一个错误。 典型的信息帧见下表
开始 地址 功能 数据 纵向冗余检查 结束
1字符
: 2字符 2字符 n字符 2字符 2字符
图3 ASCII信息帧
例外:对于584和984A/B/X控制器,一个ASCII信息可在LRC区后正常终止,而不需发送CRLF字符,此时出现>IS的时间间隔,控制器也将认为是正常中断。

在VC中使用网上的CSerial类进行串口通讯,部分代码如下:

void CSerialTestDlg::OnCom1Send()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char buf[100];
m_str_Com1Send="";

char temp=13;

m_str_Com1Send=":00040001";
m_str_Com1Send+=temp;
temp=10;
m_str_Com1Send+=temp;
memset(&buf, 0, sizeof(buf));

memcpy(buf,m_str_Com1Send,100);
m_ComPort.WriteToPort(buf);
Sleep(1000);
              m_ComPort.ReadData(&read_BUFFER,1);

}

匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2006/7/27
发站内信
发表于:2006/7/27 15:46:00
#1楼
该用户被锁定,回复内容不予显示!

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

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

62.4004