新手 请各位大侠指点 感激 mark mark mark mark 不错不错啊。。。学习到了 学习 mark 最近在了解PLC,标记 你好,我从网上下了一个FXGP-WIN-C的V3.0版本,怎么点击“PLC”->“写入”的时候串口上没有任何数据流呢?
在“选项”->“串行口设置”里,“协议”选择“RS instruction”还是“Link”,这两个我都试了,但是,在下载PLC程序的时候,都没有数据发送到串口上。 {:smile:}mark 请问一下,在程序里面的这个函数:
void UartSendchar(unsigned char ucdata)
{
ES=0; // 暂停串行中断,以免数据比较时出错
while((((outlast-putlast)==2)&&(outlast > putlast ))||((outlast < putlast)&&(OutLEN-(putlast-outlast)==2)))
{
ES=1;
ucdata++;
ucdata--;
ES=0;
}
*putlast=ucdata; // 放字节进入缓冲区
putlast++; // 发送缓冲区指针加1
if (putlast==UartSendBuffer+OutLEN) putlast=UartSendBuffer; // 指针到了顶部换到底部
UartSendBufferHaveDataFlag=1;
if (UartSendBufferemptyFlag) // 缓冲区无数据
{
UartSendBufferemptyFlag =0;
SBUF=*outlast; // 未发送完继续发送
outlast++; // 最后传出去的字节位置加1
if (outlast==UartSendBuffer+OutLEN)outlast=UartSendBuffer; // 地址到顶部回到底部
if (putlast==outlast)UartSendBufferHaveDataFlag=0; // 数据发送完置发送缓冲区空标志
} // 缓冲区开始为空,置为有,启动发送
ES=1;
}
中的那段 while((((outlast-putlast)==2)&&(outlast > putlast ))||((outlast < putlast)&&(OutLEN-(putlast-outlast)==2)))
{
ES=1;
ucdata++;
ucdata--;
ES=0;
}
好像没有什么作用,请问能解释它有什么用吗? 和146楼同问. 本帖最后由 any_014 于 2012-11-7 17:31 编辑
xy369 发表于 2012-8-7 19:58 static/image/common/back.gif
请问一下,在程序里面的这个函数:
void UartSendchar(unsigned char ucdata)
{
-------------------------
大致明白了。
串口缓冲区UartSendBuffer长度有限,当放入的数据太长超过了缓冲区的长度,指针就会有堆栈底部重新指向堆栈顶部,但是可能会覆盖尚未发送出去的数据。为了防止出现这种情况,设置放入指针和取出指针间有2个字节的距离。如果两个指针靠得太近,就暂停放入堆栈。
但是我还是有疑问,void UartSendchar(unsigned char ucdata)函数作用是放一个字节到缓冲区,该函数执行一次,将会放一个字节到缓冲区,并且当UartSendBufferHaveDataFlag=1时会将*outlast里的字节通过串口发送出去。但UartSendBufferHaveDataFlag我没看到别的地方用到啊。
-----------------
在串口中断里看到了UartSendBufferemptyFlag...
void UartSendchar(unsigned char ucdata)函数放一个字节到缓冲区,如果放字节到缓冲区的速度比串口发送字节的速度快的话,则只是第一次运行时从串口发送一个字节,利用串口中断自动发送其余的字节;相反,如果慢的话,则每执行一次该函数时在函数内执行一次串口发送字节。
但还是感觉UartSendBufferemptyFlag和UartSendBufferemptyFlag有点重复。
--------------------------------
FX1N.C中 函数void FX1NProcessing(void) 中的这句sumdata=asctohex((unsigned char *)(UartReceiveBuffer+UartReceiveCounter-2)); 看不懂,求人指点。
UartReceiveBuffer是接受缓冲器,UartReceiveCounter是接受计数器,这两个相加是什么? 学习ing。。。 真心谢谢楼主的这个框架,虽然里面的错误不少,程序框架有了,装修就靠自己了!谢谢 真心谢谢楼主的这个框架装修就靠自己了!谢谢 正好下载了一个fx2n的源码,和这个对应起来看一个会有很多收获的 93434387@qq.com 发表于 2015-2-11 16:19
正好下载了一个fx2n的源码,和这个对应起来看一个会有很多收获的
fx2n的源码,能共享学习下吗?
能共享一下fx2n源码吗?yzq707@sina.com FX1N PLC 下载通讯协议 感谢分享 学习。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 楼主有FX系列PLC扩展口扩展模块的协议吗?
页:
1
[2]