240712
This commit is contained in:
parent
d49043d755
commit
df15a41887
28
README.md
28
README.md
@ -27,25 +27,25 @@
|
||||
|
||||
#### 上位机协议指令(modbus 16位CRC校验,DATU不参与计算)
|
||||
|
||||
44 41 54 55 03 00 01 40 00 读数据
|
||||
44 41 54 55 03 00 01 A3 C6 读数据
|
||||
|
||||
44 41 54 55 06 00 01 50 01 主轴针数清零
|
||||
44 41 54 55 06 00 02 10 00 闪灯
|
||||
44 41 54 55 06 00 03 D1 C0 开锁1
|
||||
44 41 54 55 06 00 04 90 02 开锁2
|
||||
44 41 54 55 06 00 05 51 C2 开锁3
|
||||
44 41 54 55 06 00 06 11 C3 报警灯开
|
||||
44 41 54 55 06 00 07 D0 03 报警灯关
|
||||
44 41 54 55 06 00 01 16 47 主轴针数清零
|
||||
44 41 54 55 06 00 02 47 FD 闪灯
|
||||
44 41 54 55 06 00 03 77 6B 开锁1
|
||||
44 41 54 55 06 00 04 E2 C8 开锁2
|
||||
44 41 54 55 06 00 05 D2 5E 开锁3
|
||||
44 41 54 55 06 00 06 83 E4 报警灯开
|
||||
44 41 54 55 06 00 07 B3 72 报警灯关
|
||||
|
||||
设备发送到屏幕的数据
|
||||
44 41 54 55 00 00 00 04 05 00 00 00 00 01 B4 53
|
||||
44 41 54 55 15 00 00 00 0F 01 11 01 00 00 A5 5C
|
||||
|
||||
44 41 54 55:DATU固定开头
|
||||
00 00 00 04:主轴针数
|
||||
05 00:张力传感器1,05为小数点前,00为小数点后
|
||||
05 00:张力传感器2,同上
|
||||
00 02:传感器状态, 0000 0010,代表IN1传感器有信号
|
||||
B4 53:CRC16 公司内部校验码,DATU不参与计算
|
||||
15 00 00 00:主轴针数
|
||||
0F 01:张力传感器1,0-4095,对应0-100 cN
|
||||
11 01:张力传感器2,同上
|
||||
00 00:传感器状态, 0000 0010,代表IN1传感器有信号
|
||||
A5 5C:CRC16 公司内部校验码,DATU不参与计算
|
||||
|
||||
传感器状态说明
|
||||
Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
|
||||
|
||||
@ -179,8 +179,15 @@ rt_uint8_t get_IO_Value()
|
||||
rt_uint8_t get_IO_NeedleCountUpdateFlag()
|
||||
{
|
||||
return IO.IO_Flag.NeedleCountUpdateFlag;
|
||||
// return IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
}
|
||||
|
||||
void set_IO_NeedleCountUpdateFlag(rt_uint8_t flag)
|
||||
{
|
||||
IO.IO_Flag.NeedleCountUpdateFlag = flag;
|
||||
}
|
||||
|
||||
|
||||
void set_IO_Needle_io(rt_uint8_t io)
|
||||
{
|
||||
IO.IO_Flag.Needle_io = io;
|
||||
@ -188,7 +195,8 @@ void set_IO_Needle_io(rt_uint8_t io)
|
||||
|
||||
rt_uint32_t get_IO_NeedleCount_sum()
|
||||
{
|
||||
return IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum;
|
||||
return IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
// return IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum;
|
||||
}
|
||||
|
||||
void set_IO_NeedleCount_sum(rt_uint8_t count)
|
||||
@ -333,30 +341,38 @@ void updateSpeed(void)
|
||||
*/
|
||||
void updateNeedleCount(void)
|
||||
{
|
||||
rt_uint32_t tempCount = 0;
|
||||
//
|
||||
|
||||
tempCount = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
rt_thread_mdelay(500);
|
||||
|
||||
if ((IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - tempCount))
|
||||
{
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last;
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum += IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount;
|
||||
if (IO.IO_Data[IO.IO_Flag.Needle_io].Count!=IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count) {
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].Count = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
IO.IO_Flag.NeedleCountUpdateFlag = 1;
|
||||
//微工厂需求针数要没有变化清零,下列注释,NeedleCount_Sum+=变为=
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
if (IO.IO_Flag.log) {
|
||||
rt_kprintf("NeedleCount: %d %d\n", IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum, IO.IO_Flag.Needle_io);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IO.IO_Flag.NeedleCountUpdateFlag = 0;
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
||||
IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
|
||||
}
|
||||
return;
|
||||
//DATU需求
|
||||
|
||||
|
||||
// rt_thread_mdelay(500);
|
||||
// rt_uint32_t tempCount = 0;
|
||||
// if ((IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - tempCount))
|
||||
// {
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count - IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last;
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum += IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount;
|
||||
// IO.IO_Flag.NeedleCountUpdateFlag = 1;
|
||||
// //微工厂需求针数要没有变化清零,下列注释,NeedleCount_Sum+=变为=
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
// if (IO.IO_Flag.log) {
|
||||
// rt_kprintf("NeedleCount: %d %d\n", IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_Sum, IO.IO_Flag.Needle_io);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// IO.IO_Flag.NeedleCountUpdateFlag = 0;
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount = 0;
|
||||
// IO.IO_Data[IO.IO_Flag.Needle_io].NeedleCount_last = IO.IO_Data[IO.IO_Flag.Needle_io].Temp_Count;
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -98,6 +98,7 @@ rt_uint32_t get_IO_count(rt_uint8_t io);
|
||||
rt_uint8_t get_IO_Value();
|
||||
|
||||
rt_uint8_t get_IO_NeedleCountUpdateFlag();
|
||||
void set_IO_NeedleCountUpdateFlag(rt_uint8_t flag);
|
||||
void set_IO_Needle_io(rt_uint8_t io);
|
||||
//控制台更改电平
|
||||
void IO_key();
|
||||
|
||||
@ -143,7 +143,7 @@ void datu_init()
|
||||
D, A, T, U 主轴针数 面线1张力值 面线2张力值 传感器状态 B4--B13的16位CRC
|
||||
*
|
||||
*/
|
||||
rt_thread_mdelay(10);
|
||||
// rt_thread_mdelay(10);
|
||||
|
||||
// 主机命令或者有针数时发一条数据上去
|
||||
if (DATU.send_data || get_IO_NeedleCountUpdateFlag()) {
|
||||
@ -171,21 +171,25 @@ void datu_init()
|
||||
// rt_kprintf("CRC %x\n ", crc);
|
||||
send_buf[15] = crc >> 8;
|
||||
send_buf[14] = crc & 0xFF;
|
||||
|
||||
send_len = rs485_send(hinst, (void *) send_buf, sizeof(send_buf));
|
||||
|
||||
DATU.send_data =0;
|
||||
}
|
||||
set_IO_NeedleCountUpdateFlag(0);
|
||||
if (DATU.log)
|
||||
{
|
||||
rt_kprintf("rs485 send %d datas : ", send_len);
|
||||
for (i = 0; i < send_len; i++)
|
||||
{
|
||||
rt_kprintf("%02X ", send_buf[i]);
|
||||
}
|
||||
|
||||
if (DATU.log)
|
||||
{
|
||||
rt_kprintf("rs485 send %d datas : ", send_len);
|
||||
for (i = 0; i < send_len; i++)
|
||||
{
|
||||
rt_kprintf("%02X ", send_buf[i]);
|
||||
}
|
||||
rt_kprintf("\n");
|
||||
send_len = 0;
|
||||
|
||||
rt_kprintf("\n");
|
||||
send_len = 0;
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// read_len = rs485_send_then_recv(hinst, (void *) send_buf, sizeof(send_buf), read_buf, sizeof(read_buf));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user