回复:关于TCP通讯的问题

潇潇

  • 帖子

    75
  • 精华

    6
  • 被关注

    20

论坛等级:侠客

注册时间:2005-11-15

普通 普通 如何晋级?

发布于 2017-02-03 13:30:35

6楼

展开查看
以下是引用LeeWheel在2016-12-30 16:18:36的发言 >

目前只是测试,格式如下:

IF "发送计数器数值" = 1 THEN

    "Data_Send".Data_Send := 'This is data1';

    "Data_Long" := 15;

END_IF;

IF "发送计数器数值" = 2 THEN

    "Data_Send".Data_Send := 'This is data2';

    "Data_Long" := 15;

END_IF;

IF "发送计数器数值" = 3 THEN

    "Data_Send".Data_Send := 'This is data3';

    "Data_Long" := 15;

END_IF;

IF "发送计数器数值" = 4 THEN

    "Data_Send".Data_Send := 'This is data4';

    "Data_Long" := 15;

END_IF;

IF "发送计数器数值" = 5 THEN

    "Data_Send".Data_Send := 'This is data5';

    "Data_Long" := 15;

END_IF;

IF "发送计数器数值" = 6 THEN

    "Data_Send".Data_Send := ‘DataEND';

    "Data_Long" := 9;

END_IF;

数据长度之所以比实际多2个字节,原因就是因为PC端收到的数据开始有2个字节的乱码,如果不加,那么实际发送的数据尾巴就会被截断2个字节。

现在主要的问题是通讯结束后不会给PC一个CLOSE的命令,导致通讯端口以及进程长期占用。

这些都是数据的内容和长度的定义。在最后发送的block前面,最后发送消息的时候,我通常是one shot,一个脉冲发出去。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15642条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。