使用VC对ADAM-4017编程的问题 点击:1212 | 回复:12



magikarp

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-11 17:40:00
楼主
我是一名学生,现在在做毕设
我要使用VC对ADAM4017以及4052这2个模块进行编程

有个问题是,我现在把模块和PC都已经接好了之后,要发什么代码给4017?
比如,我现在要发一个校准的命令,在命令列表里他是$AA2,我如何把这个发出去?
是要把他转化成010110这种2进制代码吗?还是要有什么其他的方法?

谢谢了



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-12 12:06:00
1楼
找原廠要個例程來看就清楚啦!

magikarp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-13 16:10:00
2楼
刚接触这个,从哪里找都不知道呢……

现在这点知识还是自己吓撞,撞出来的,能提供个网站吗? magikarp@163.com

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-15 10:06:00
3楼
研華 http://www.advantech.com.cn/

該模塊的出廠設定, 應該是 Address 01, 9600 bps, 8N1.
您說的 $AA2 中的 AA 是 Address, 所以要發出 $012 + <CR> 這個命令串.

不論是 2 進制/8進制/10進制還是 16 進制. 那都是為了方便人們閱讀使用而已. 它們在 memory 中的 8 bits, 其內容都是一樣的. 

Serial Communications in Win32
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp

magikarp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-16 09:54:00
4楼
您好,先谢谢您的回复解答

我已经按照MSDN上的方法实现了对串口的打开,和设置

可是,我把ADAM-4017从串口接入后,再打开程序,执行,程序提示的是串口打开失败,好象是串口已经被占用了似乎,不知道为什么

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-16 11:26:00
5楼
串口打開失敗, 一如您所述, 串口被佔用中; 另一是所指定的串口不存在.

magikarp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-16 22:32:00
6楼
串口肯定存在,我在串口上接了个回环线(就是把这个串口的发送和接受连在一起了)能成功打开

可是,如果是被占用,那怎么传输数据?
程序作为发送方,4017作为接收方,必须在同一个com上,我用的都是com1。

不知道研华的人在不在这里,能不能说下怎么解决的?

还有点,就是,在发送指令时,$012 + <CR>中的<CR>怎么加到程序中?我用的是API,没用控件,发送以数组传送的,希望能再点拨下

谢谢

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-17 10:10:00
7楼
不論您是否有在 Com 口上接 回环线, Com 口都要能被打開才對! 這兩者是不相干的! (串口被打開, 與串口通信, 是不同階段的事情!)

4017 只是串口上的一個設備, 不會造成您的串口無法被打開. 同上述道理. 

串口被佔用... 請檢查看看是否有其它的軟件, 也在開啟該串口. 同一個串口在同一時間內是只能被打開一次的, 無法同時開啟.

char szCommand[10];
strcpy(szCommand, "$012\r");

magikarp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-17 23:29:00
8楼
有些明白了,我去实验下,有什么不明白的地方还要再麻烦您,多谢了 对了,还有一点,按照您给的那个函数,将命令加到那个数组中,如果数组已经有10个元素了,那是不是就加不上了? 也就是说,那个函数是把命令字符串添加到数组包含元素的最后一位? 是这样吗?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-18 09:45:00
9楼
strcpy 會從 offset 0 開始覆寫, 原有的內容會不見! 這是 C 內建的函數, 可以從 Online Help 中查看其說明.

magikarp

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2006年5月11日
发表于:2006-05-20 07:38:00
10楼
哦,好的,谢谢您

4659

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年6月06日
发表于:2006-06-06 10:21:00
11楼
呵呵,   我也是一名学生,现在在做毕设
我要使用VB对ADAM4017以及4052这2个模块进行编程,请问运行完一次.如果我把数据储存在文件里,该数据是以什么形式储存的,一次能储存多少个数据呀.我编的程序是每次有四个数据.
 

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-06-07 10:30:00
12楼
數據存儲可以用 Win32 API, CreateFile(), CloseFile(), ReadFile(), WriteFile() 去作. 
格式自訂, File Size 應該是限制在 2GB 內, 系統的限制(For FAT32?).

热门招聘
相关主题

官方公众号

智造工程师