发表于:2006/6/20 11:03:00
#0楼
用PC机做上位机与PLC做简单的通讯,PLC为SIEMENS的S7 222
发送浮点数的时候,上位机发送数据代码如下:
m_dispatch.Format("%d%d%d%f%f%f%c%c",3,3,12,120.3,8.5,0.3,0x66,0x66);
if(!m_Comm.GetPortOpen())
m_Comm.SetPortOpen(TRUE);
UpdateData(TRUE);
m_Comm.SetOutput(COleVariant(m_dispatch));
结果PLC接收后将浮点数识别成一位一位的,即120.3被识别成1 2 0 . 3,占用五个字节,而PLC最大也只能一下读一个双字,浮点数无法读取。在PLC里浮点数应该是被存储成四个字节的,而发过来就成了一位一位的
请问各位老大是不是我的发送格式有问题?浮点数应该怎样通讯呢?望赐教!!
发送浮点数的时候,上位机发送数据代码如下:
m_dispatch.Format("%d%d%d%f%f%f%c%c",3,3,12,120.3,8.5,0.3,0x66,0x66);
if(!m_Comm.GetPortOpen())
m_Comm.SetPortOpen(TRUE);
UpdateData(TRUE);
m_Comm.SetOutput(COleVariant(m_dispatch));
结果PLC接收后将浮点数识别成一位一位的,即120.3被识别成1 2 0 . 3,占用五个字节,而PLC最大也只能一下读一个双字,浮点数无法读取。在PLC里浮点数应该是被存储成四个字节的,而发过来就成了一位一位的
请问各位老大是不是我的发送格式有问题?浮点数应该怎样通讯呢?望赐教!!