Search the Community

Showing results for tags ' etc. all the mb public/native function codes are supported. 32-bit integers/floats as single entity are supported with byte and word level swapping. a separate utility automates the data mapping to your plc logic. features -serial master (basic requ'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 345 results

  1. Hi there! I've been looking for some fault codes table for the 1734-AENTR adapters, since I'd like to show a message in HMI with some information when there is a faulty adapter, but I haven't found anything on the internet. So my question is, is there any type of table like this for these adapters? Right now I have a PLC with some AENTR adapters in the program for testing, and since there is actually no adapter connected to it, I can see a 16#2024 error in the module properties, but can't seem to find that info in the module variables.   Do you guys have any clue on how to find this information in order to show it?   Thanks in advance!
  2. Hi,  I write a CAM function to sync 2 axis (Rotary & linear). i am using a virtual servo as master, and 2 physical servos as slave. The problem i facing is, with the exact same CAM profile setting, when difference speed used will give difference result of movement. Below is my setting, Master axis     linear motor move 0-180degree   0-500mm 180-360          500-0   when running with slow speed, it move following the CAM profile setting, however, when moving in fast speed, the linear motor will only move halfway then start to moving back 0 already. Has anyone encounter this issue before? is it i missed out some setting? Thanks.
  3. HI, I am trying to write a program to read the timer up to 2 seconds, then use that time to calculate the frequency per hour the machine is running. Could anybody point me in the correct direction to Read  %TMx.V & store that value.  I have done this with Omron, but do not use SoMachine Basic very much, so am a bit lost, I used 2 timers, one 20Ms to collect the number of the 2 second timer, set read reset. add the 20ms back on then do the calculation then multiply by 60, to got sheets per hour of a printing machine. It was suggested count how many over 36 seconds then multiply x100, but that is slow, mine was close enough & instant. Thank you.  
  4. Hi All, I need access to a the Safety function blocks within a safety CPU using sysmac studio on a machine we are upgrading.. Is there a generic password available to gain access? Best Regards, Paul  
  5. I am trying to connect a Panel PC (Bartec RS-422) and an Omron PLC (CJ2H RS-232) I am using a Kinematics 2199 RS232 to RS422 converter. Results: Testing software Multiway v9.5 1) Using a usb to rs-232 cable on another PC     - I am able to send and receive a hostlink commands between the panel rs-422 converter and the PC rs-232. commands come through correctly 2) Using the PC to connect to the PLC     - If I connect directly to the PLC using the usb to serial cable and a short adapter I made to map the Omron PLC pin out 2-2,3-3, 5-9, I can send and receive hostlink commands to the PLC. Everything works as expected 3) Using the Panel and the USB Cable    - If I connect the usb converter to the Panel I am also able to communicate with the PLC 4) using the RS-422 port on the Panel     - If I connect the panel RS-422 port and converter and then connect to the PLC. I can only send commands; I cannot get any responses come through from the PLC. My converter box has LEDs on the RX and TX channels and I can see the PLC tries to send something. But something must be corrupted as multiway does not show and response.  I have tried a bunch of things but I am at a loss on how to diagnose this issue. Since I can get the two PCs talking to each other sending and receiving, I can rule out any wiring issue between the converter box and Panel.  Since I can plug the USB into the Panel and get it to work correctly, I can rule out any operating system issues and PLC configuration issues. The only link I cannot verify is that from the converter box to the PLC, I am not sure if the PLC can push hostlink data that has not been requested.  I have no idea why I can write to the PLC but not read. If anyone can provide any insights, I would greatly appreciate it, It has been two days and I am stuck. I am looking at maybe getting a logic analyzer to try and see what the PLC is sending back, but that will be months away.  I am happy to try any suggestions       
  6. Hello, In GX Works2, what do asterisks before function block input and output variable names mean? Thanks,    
  7. Send data TXD548)

    Hi,   After a long time, searching for missing communication I think to have found the cause. In this CMP2A plc there is a receiving device connected to the RS-232 port. . During operation it can happen that in the same cycle there will be 2 functions to send different data.. I never receive those 2 data,  only 1 is received. I can set a delay for sending this but this seems to be 'overkill', Is there a simpler way to do this..? The 2 pics are part of the program. After putting the P_off before the other transmits, I always receive the TXD(48) DM1621...   Please advise,      
  8. Dear reader, I am writing a C# program using the library  ‘EasyModbus’ that needs to communicate with Siemens WinCC via the connection type ‘Modicon modbus’ I have written a version using the ‘float’ data type in WinCC and that works perfectly. Here my code fragment: Method to convert ‘double’ to bytes in C#: public static byte[] DoubleToModbusFloat(double value) {     byte[] bytes = new byte[4];     float floatValue = (float)value;     int intValue = BitConverter.ToInt32(BitConverter.GetBytes(floatValue), 0);     bytes[0] = (byte)(intValue >> 24);     bytes[1] = (byte)(intValue >> 16);     bytes[2] = (byte)(intValue >> 8);     bytes[3] = (byte)intValue;     return bytes; } Call of the method and loading of the modbus registers in EasyModbus: Bytes = PublicCode.DoubleToModbusFloat(TmpDbl); int n = (int)ModbusStartAddress + ((i - 1) * 2); mb.ModServer.holdingRegisters[n + 1] = (short)((Bytes[0] << 8) + Bytes[1]); mb.ModServer.holdingRegisters[n + 2] = (short)((Bytes[2] << 8) + Bytes[3]); So far so good – this works fine. But I also want to be able to use the ‘Double’ data type in WinCC because I sometimes need more precision than the 7 figures of the ‘float’. I thought it would simply be a case of doubling up the code so I wrote: Method to convert ‘double’ to bytes in C#: public static byte[] DoubleToModbusDouble(double value) {     byte[] bytes = new byte[8];     long intValue = BitConverter.ToInt64(BitConverter.GetBytes(value), 0);     bytes[0] = (byte)((intValue >> 56) & 0xff);     bytes[1] = (byte)((intValue >> 48) & 0xff);     bytes[2] = (byte)((intValue >> 40) & 0xff);     bytes[3] = (byte)((intValue >> 32) & 0xff);     bytes[4] = (byte)((intValue >> 24) & 0xff);     bytes[5] = (byte)((intValue >> 16) & 0xff);     bytes[6] = (byte)((intValue >> 8) & 0xff);     bytes[7] = (byte)(intValue & 0xff);     return bytes; } Call of method and loading of the modbus registers in EasyModbus: Bytes = PublicCode.DoubleToModbusDouble(TmpDbl); int n = (int)ModbusStartAddress + ((i - 1) * 4); mb.ModServer.holdingRegisters[n + 1] = (short)((Bytes[0] << 8) + Bytes[1]); mb.ModServer.holdingRegisters[n + 2] = (short)((Bytes[2] << 8) + Bytes[3]); mb.ModServer.holdingRegisters[n + 3] = (short)((Bytes[4] << 8) + Bytes[5]); mb.ModServer.holdingRegisters[n + 4] = (short)((Bytes[6] << 8) + Bytes[7]); However, this code does not work correctly. I have tried all combinations of byte and word reversal, and whatever I do WinCC either displays nonsensical values or ‘####’ showing that it cannot display the value. I have tried reading as much documentation as I can but it still looks to me as if I am doing the right thing. Also, I have downloaded a number of ‘modbus master’ code examples, and they seem to be able to read the ‘Double’ from my program without any issues. In WinCC I also see that there are two types of double – ‘Double’ and ‘+/- Double’ – I am also unsure as to why this is – there is no ‘+/- Float’ data type, which seems inconsistent to me. I am obviously missing something, but cannot seem to discover what exactly. I hope that someone can point me in the right direction as to what I am doing wrong. Please see attached word file for a picture of the configuration of the connection in WinCC.   Thanks in advance for any help !, Dave Long Double trouble.docx
  9. Does anyone know how to delete the row labeled as, "63 - station number" and "Driver - Host Name". Our IPs range from .50 - .90, I would like to associate the station with an IP that correlates to one another.     For example, Station 50 = xx.xxx.x.50, Station 51 = xx.xxx.x.51, etc However, when I go to add a station 63. I get the error dialog that tells me 63 can not be added because it already exist. I have had this problem in the past, but never got around to wanting to figure out how to solve it.    ** Jumped the gun ** (modified)  You can rename 63 to whatever number you choose it to be....  
  10. Emerson 90-30

    I'm working with Emerson 90-30 on proficy machine edition and I'm trying to use a string variable to display words on a graphical panel in target 2 but withing the code itself on target one I cant seem to understand how the reference address works? can some one explain how string variables function and how to use them?
  11. Hi All, I am Data Transferring Arrays of WORD's from a HMI to NX PLC. This Transfer may be a variety of data types, Likely just UINT and STRING[20]. It will be Imported to NX as an Array of Word What im trying to do is Populate my Structure from this Array of Word. I can do this by mapping them individually just fine. But i was hoping i could add them automatically. Much like when you assign EthernetIP tags and can link them to a structure and User Offset the Bytes. But i cant seem to Link the Array of Word to the Structure e.g. SENSORS_STORED:=DATA_2_IN; Says its impossible Anyone have any ideas how i could Populate this structure from a WORD Array without manually mapping and Converting Each? SENSORS_STORED.Fixture_ID:=WORD_TO_UINT(DATA_2_IN[0]); For Example is a workable way but is long winded and was hoping there is a easier way Thanks in Advance Dann  
  12. Data register over flow

    Hi, data registers are getting full, because of extremely high speed pulsing is there any way , if the data value in register goes above the capacity of 32 bit register, it automatically attaches itself to next set of data registers so lets say if data was written in D10,D11 Upon reaching the limit, it goes to D10, D11, D12, D13 please share if there is an alternate way to do this
  13. Data register over flow

    Hi, data registers are getting full, because of extremely high speed pulsing is there any way , if the data value in register goes above the capacity of 32 bit register, it automatically attaches itself to next set of data registers so lets say if data was written in D10,D11 Upon reaching the limit, it goes to D10, D11, D12, D13 please share if there is an alternate way to do this
  14. Hi, I'm Jovel, I'm new to learning how to program PLC. Just want to learn how to use Omron Sysmac Studio . I have a question about the Data Type Data Type - Structure ( Offset Type - Offset Byte )  / Union   I Don't Understand this 2 Data types and how going to use them, can anyone teach me and have a sample program? Thank you
  15. As the industry of plc and scada softwares continue to integrate more and more programming languages into their IDE, what is the most common language that should be learned by controls engineers (excluding Ladder Logic)?  I mainly use Python and VB for scripting but I am curious what languages other SCADA and PLC programming environments use. Should I be sticking to a specific language and learning it well or just know a little bit of them all? Let me know your thoughts!!
  16. CP1L Serial TXD Data Error

    Hi, I have a problem with serial communication (no protocol) using rs485 module, the received data is error. I'm using CP1L CPU, CP1W-CIF11 module as transmitter, and USB to RS485 converter as receiver. When I check the received data on PC, it's incorrect (bit error?). I just send 2 bytes data, 0x61 ('a') and 0x62 ('b'). My configuration: DIP switch CPU 4 = off, DIP switch CIF11 1 to 6 = on,on,on,off,off,off, 2 wire RS485. (I also attached the program and settings) https://postimg.cc/gallery/pr293Jc   Could you help me to solve this problem? Thanks   Program and Settings:     Result:   
  17. View File GE SRTP Ethernet Driver for .NET 6, .NET 5 & .NET Core. - ASComm IoT ASComm IoT for .NET 6.0, .NET 5.0 & .NET Core developers. Class library for use in Visual Studio.NET to create HMI/SCADA apps that communicate with GE/Emerson SRTP PLCs and compatible devices via Ethernet.   Does not require OPC. Does not require 3rd party drivers Visual Studio.NET 2017, 2019 and 2022 compatible All .NET 6.0, .NET 5.0 & .NET Core targets are supported, including Web, Windows, console, and service apps. Runs on Windows, Linux, Android and iOS Extremely high performance - 5~10 mSec typical transaction time Supports PACSystems family native tag names Abstract base classes allow you to write generic code that works with all drivers Synchronous and asynchronous read/write methods Data change notifications Provides common user interface across all driver classes No limit on number of devices or data points Multi-threaded for high data throughput Includes extensive help system Example applications with VB and C# source code included. Easily connect office systems to factory floor. Runtime-free for qualified applications Submitter Automated Solutions Submitted 12/05/22 Category Demo Software
  18. Version 1.4.0

    10 downloads

    ASComm IoT for .NET 7.0, .NET 6.0, .NET 5.0 & .NET Core 3.1+ developers. Class library for use in Visual Studio.NET to create HMI/SCADA apps that communicate with GE/Emerson SRTP PLCs and compatible devices via Ethernet.   Does not require OPC. Does not require 3rd party drivers Visual Studio.NET 2017, 2019 and 2022 compatible All .NET 7.0, .NET 6.0, .NET 5.0 & .NET Core 3.1+ targets are supported, including Web, Windows, console, and service apps. Runs on Windows, Linux, Android and iOS Extremely high performance - 5~10 mSec typical transaction time Supports PACSystems family native tag names Abstract base classes allow you to write generic code that works with all drivers Synchronous and asynchronous read/write methods Data change notifications Provides common user interface across all driver classes No limit on number of devices or data points Multi-threaded for high data throughput Includes extensive help system Example applications with VB and C# source code included. Easily connect office systems to factory floor. Runtime-free for qualified applications
  19. Hi, We have a discussion in our office concerning the correct way of wiring an external current signal 4-20mA to a 1756-IF16 module. (We do many different PLC brands and configurations, so my/our experience with Alan Bradley is of several years ago) We have several external current signals connected to these units. (And these systems are all situated on a ship.) Some are galvanic separated and others are not and have their 'own' power supply only a few are sensors that are loop powered by the Main PLC cabinet.   The issue: According to one colleague it is required to connect the RTN jumper wires to the negative of the main PLC cabinet to solve signal issues due to floating voltage. Although it will work, I am not sure if this is really necessary, and I don't like connecting the negative to other cabinets which have their own power supply... Alan Bradley does not indicate that this is required, only jumper wires to convert the circuit from voltage measurement to current. It is also disappointing that none of the (non-differential) examples of Alan Bradley show how to connect an external current signal (which would indicate if the extra negative to be needed)   Adding galvanic separators and connecting the RTN to the negative is in my opinion not so much a solution but an evasion of the question/issue.   Any knowledge out there? Thnx
  20. Serial question

    I have a cell phone modem connected to my Omron CP1L on serial 2   Here is the issue  I need to pull the phone number out of the msg received (receiving text messages)  I receive a text msg and a lot of other crap like time and date ect. RDX says store in D100 the problem is that after I receive the SMS I see the phone number and copy the number to D200 to D2xx The next text comes in and it is added to the length of the previous text and the new phone number is not in the same D area as the first.  It seems the only time the serial port works is if you declare 20 characters and you get 20 characters Works every time. But sometimes I may get 12 characters and other times I can get more than 100. I have used the restart and clear port command with no luck.  If I set RDX to a large number and receive complete will not come on and the next receive will be added to the first.  I need a clear buffer for each receive.  How do I get around this?  If you set the RDX to 10 but 12 characters were received the 2 extra characters will be in the buffer and added to the next receive.  I can’t use end receive if x because there is nothing that is always available in the msg. And even if I do any characters received after end code is left in the buffer and screws up the next receive. I have never seen anything like this. Any ideas? Thanks Rob  
  21. Hi All I am trying to connect Cognex OPC Server with Mircrosoft SQL Server (SMSS). Do you have any idea how to do that? I couldn't find relevant information online.
  22. Serial Port issue

    Sorry its long !! I am recieving text from a GSM modem for text msg Send and receive (SMS) works ok but would be better if I could make use of the start code and end code. This way I could cut down on all the crap that is received when a text arrives. I get this  CMTI: "SM",0 I have it stored into D80 and I have that trigger a TXD that sends AT+CMGRD=0 and that tells the GSM to send the msg (The 0 is the current msg in memory) ------ The problem is that there is Carriage  Return and Line Feeds in the received msg ----      AS below ((AT+CMGRD=0 +CMGRD: "REC UNREAD","+19028991212","","22/10/20,16:57:54-16"  Hello this is the msg  OK)) When the PLC sees the carriage return it stops receiving data. And I have no start code or end code setup. (I am using characters received) The way around this is to set a high  character count in the RXD (More than the actual msg (More than the msg length)   The main issue with that is I get garbage in as the msg gets bigger. Its unreliable. I clear the port after each receive and that helps but still get the odd garbage. (Never get garbage when connected to a terminal prg). Any Ideas???? ps Even the Start Code is unreliable as it will start receiving a few characters late. Rob  
  23. Serial Ports not working

    I have a CP1L-EM and the serial ports - both of them have an issue with the port ready flag will not turn on. Power cycle still no port ready flag In settings both ports are set up as 15200 8N1 CR/LF Verified and power cycled and still no port ready flag. Is there someplace in the PLC where the ports can be disabled? Rob  
  24. Version 1.0.0

    35 downloads

    PRNG algorithm packed into a functional block. As an example of using ST language for Omron CJ series PLC.
  25. Function block RANDOMIZE on ST View File PRNG algorithm packed into a functional block. As an example of using ST language for Omron CJ series PLC. Submitter drYurban Submitted 10/05/22 Category PLC Sample Code