大家好,
我想发送etherCAT上的32位数据类型。
为了对其进行测试,我创建了一个包含3个变量的SSC应用程序,并 使用CM示例创建了CCS项目:
- REAL32 FloatingVariable
- UINT32 集成32Var_1
- UINT32 集成32Var_1
在我的objects.h中一切看起来都很好我可以看到我定义的变量:
以及TwinCAT:
现在,我 不确定实施输入映射的最佳方式是什么。
我一直在使用uint16,所以我只是增加指针,因为pData是UINT16*:
void APPL_InputMapping(UINT16* pData) { #if _WIN32 #pragma message ("Warning: Implement input (Slave->Master) mapping") #else #warning "Implement input (Slave->Master) mapping" #endif *pData = Myvar0x6000.Var1; pData++; *pData = Myvar0x6000.Var2; pData++; *pData = Myvar0x6000.Var3; }
但是现在我使用的是real32和UINT32,我不确定如何实现它。 我只是尝试移动指针两次 以获得32位,但它不起作用。
void APPL_InputMapping(UINT16* pData) { *pData = DataTest0x6000.FloatingVariable; pData++; pData++; *pData = DataTest0x6000.Integer32Var_1; pData++; pData++; *pData = DataTest0x6000.Integer32Var_2; }
如果您有使用uint16以外的其他数据类型的示例,请告诉我。
谢谢你