威纶通官方论坛

inport正确的使用方法

  [复制链接]
发表于 2011-9-16 10:11:55 | 显示全部楼层 |阅读模式
本帖最后由 w316746147 于 2011-9-19 16:29 编辑

outport可以在串口调试助手上接收到,但是按照说明inport好像无法接收到串口调试助手发出的消息...新手求助... 最好是图文说明  qq316746147  可以qq邮箱 感激不尽.. Help~
以下是我用的串口调试助手和所建立的工程  希望版主可以修改以下以实现在电脑上发送数据在hmi上正常显示  hmi型号为6070iH

1.zip (480.47 KB, 下载次数: 375)
测试2.zip (291.79 KB, 下载次数: 346)
发表于 2011-9-16 10:59:54 | 显示全部楼层
可以接收串口调试工具发出的数据,inport之后,把接受的数据setdate到LW里面,即可观察inport的情况
 楼主| 发表于 2011-9-16 11:27:50 | 显示全部楼层
回复 2# ZHL
    setdate 我知道 说明里是有的
我遇到的问题是inport好像是没法接收   宏是可以通过编译的  是哪里的设置出问题了还是串口调试助手设置的问题
发表于 2011-9-16 13:04:38 | 显示全部楼层
可以看下你的程序吗?发程序给我测试下。
 楼主| 发表于 2011-9-16 13:47:21 | 显示全部楼层
回复 4# mogoo


    我测试的是:就是发8个1  在屏上显示8个1  我把屏上串口的2  3短起来是可以实现的 用的就是下面的宏 macro_command main()
char td[16],rd[16]
int a,return_value
FILL(td[0], 0, 16)
FILL(rd[0], 0, 16)
for a=0 to 14 step 2
td[a]=1
next a
OUTPORT(td[0], "Free Protocol", 16)
INPORT(rd[0], "Free Protocol", 16, return_value)
SetData(rd[0], "Local HMI", LW, 10, 16)

这个是我把屏上2 3 短接起来用的可以正常显示出来8个1

我又写了一个只收得宏 可是用电脑的串口调试助手发送但是屏上没显示  我把调试助手发送间隔调至0ms 然后宏的开关间隔为0.1s 还是木有反应...  
char rd[16]
int return_value
FILL(rd[0], 0, 16)
INPORT(rd[0], "Free Protocol", 16, return_value)
SetData(rd[0], "Local HMI", LW, 10, 16)

我以前对通信完全没了解  是纯粹的新手 最近才看了modbus  刚接触  对收发机制也不懂  看的也很莫名...  help...
 楼主| 发表于 2011-9-16 13:50:19 | 显示全部楼层
回复 4# mogoo


    对了 我在调试助手上发送的就是01 00 01 00...一共16个  完全没反应... 应该是我发送的有问题吧...求指导...谢谢...
发表于 2011-9-16 14:37:28 | 显示全部楼层
在宏里面加一个判断:
INPORT(response[0], "MODBUS RTU Device", 9, return_value)

if return_value > 0 then
read_data[0] = response[4] + (response[3] << 8)//  response[3]变量为char,左移8个位后数据应该是为零的,实际结果不是
read_data[1] = response[6] + (response[5] << 8)//  

SetData(read_data[0], "Local HMI", LW, 100, 2)  
end if
类似于这样的。
如果在电脑上用串口调试助手可以收到代码吗?
 楼主| 发表于 2011-9-16 14:40:07 | 显示全部楼层
回复 7# mogoo


    电脑上可以收到  就是电脑发的屏上没反应 我看看你发的那个判断先
 楼主| 发表于 2011-9-16 14:54:44 | 显示全部楼层
回复 7# mogoo


    这个我以前就尝试过了...
    我看了说明书里给的例子里是有这个判断的
但是它是放在setdate之后的
应该是不能影响到把inport的数据进行setdate的
而且判断语句里面也没有对inport或者显示inport数据的影响...
应该不是缺少这条判断语句的问题...
   难道是我的串口调试助手的问题么...我用了3个了 一个龚建伟的 一个commix.exe  一个自己用vc写的很简单的支持16进制的  都木有反应...
   你也用串口调试助手试试呗   问题应该就是屏到底是如何收串口发来的数据的  outport确实可以发送到串口上  inport...困扰了我好几天了...
help~~~~~~~~~
发表于 2011-9-16 15:35:52 | 显示全部楼层
你使用串口调试助手收到数据后等多长时间才回复,如果等待超过系统参数里面的超时时间的话会收不到数据。
 楼主| 发表于 2011-9-16 15:45:14 | 显示全部楼层
回复 10# mogoo


    我的串口调试助手可以设置发送间隔的 我设置的是0ms 也就是不间断一直在发送数据  而我的屏里面的一个周期开关执行宏的时间间隔是0.1s 也就是100ms 也就是我的屏每100ms就会索取一次数据 而我的pc上的串口是始终在发送数据的  你看这种情况是..哪里出了问题?
 楼主| 发表于 2011-9-16 16:41:25 | 显示全部楼层
回复 10# mogoo


     我了个去...您不会下班了吧............周末也....................
发表于 2011-9-18 11:05:58 | 显示全部楼层
你这样设置可能会导致无法收到数据,在串口调试助手上使用手动发送,收到触摸屏发送的数据收在回复。
 楼主| 发表于 2011-9-19 09:52:14 | 显示全部楼层
回复 13# mogoo


    很抱歉 无论我怎么尝试发送的时机都无法让hmi收到...我已经把我用的串口调试助手和工程都放在帖子里了 希望您能告诉我怎么能接收到电脑上用软件发出的数据.谢谢...我感觉这应该不难  只是我不懂  希望您能指点以下 谢谢
发表于 2011-9-19 10:48:47 | 显示全部楼层
我认为:管理员说的两条意见非常对!实际上,你对第一条意见还没有完全理解。另外,我再加一条:你考虑一下两者的同步问题,如果双方通信不同步,你当然收不到正确的数据。就你这个案例来说,同步的关键是时间间隔的设置。祝你成功。
 楼主| 发表于 2011-9-19 11:46:45 | 显示全部楼层
回复 15# 阿林


    我是新手...我感觉到原因了   电脑是一直处于接收状态的   而HMI不是的  所以用调试助手发的 它收不到  请问你知道能把HMI也设定成一直处于接收状态的么...是和通讯协议有关么.
发表于 2011-9-19 15:09:31 | 显示全部楼层
我有一个简单的办法,供你参考。首先,我认为HMI的串行口一直都处于工作状态,因此,无所谓“一直处于接收状态”;另外,假如你用的是MODBUS RTU协议的话,那么,你把“我的串口调试助手可以设置发送间隔的 我设置的是0ms 也就是不间断一直在发送数据 ”是绝对不行的,因为,这个协议是以一定的时间间隔来区分通信的开始和结束,你这样设置会使正确的通信无法建立,因此,我建议你先把这个时间间隔改为1秒(后期你成功以后可以再改。);再为INPORT语句建立一个不停的循环监测,一直监视return_value值,先期只要发现他大于0,就亮灯报警(记住:要锁定,否则,灯不会闪烁!),提示已成功收到数据!后期,要求他大于等于一定的值(比如,你这个是等于9)就开始对收到的数据解码,如此一来,我想你应该能成功!
 楼主| 发表于 2011-9-19 16:26:42 | 显示全部楼层
回复 17# 阿林


    我设置的是free protocol  机器型号是6070iH
我加了监视return value的灯  我的串口调试助手设定了自动回复 每次hmi发送完都回在助手窗体里显示回复  只是灯是不闪烁的 return value为0的灯会闪烁我设定的自动回复的是01 00 01 00 01 00 01 00
我把工程放在帖子里了 是第二个
 楼主| 发表于 2011-9-19 18:01:49 | 显示全部楼层
回复 17# 阿林


    补充一句...我的eb8000只有free protocol支持in/outport...其他的如modbus都无法使用这两个函数
是我使用的版本被限制了? 有开放版本吗
发表于 2011-9-20 10:21:34 | 显示全部楼层
不是你的版本被限制了,是只有Free Protocol可以。
你的程序我测试了,去掉周期切换开关执行的宏指令,然后使用发送的宏,发送,电脑上再回复16个字节的数据,触摸屏上是可以正常收到的。串口调试助手的通讯参数必须与触摸屏的一致,否则不能收到正确的数据。 0920.rar (422.67 KB, 下载次数: 231)
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-5-19 21:06

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表